在 MySQL 数据库中以 DATE 格式从 csv 文件导入日期

Import date from csv file as DATE format in MySQL database

我有一个 csv 文件,我想从中创建数据库。现在一切正常,除了现在存储在 VARCHAR 列中的日期。

当我从 phpMyAdmin 导入日期时,是否可以将日期存储在 DATE 列中? csv 看起来像这样:

Date,HomeTeam,AwayTeam,FTHG,FTAG,FTR,HTHG,HTAG,HTR
29-09-2017,Excelsior,Vitesse,0,3,A,0,1,A
30-09-2017,Heracles,Feyenoord,2,4,A,0,3,A
30-09-2017,Willem II,Den Haag,1,2,A,0,1,A

您可以使用 LOAD DATA 并内联对 STR_TO_DATE 的调用来动态转换字符串日期:

LOAD DATA LOCAL INFILE 'yourfile.csv'
INTO TABLE yourTable
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\r\n' 
(@Date, HomeTeam, AwayTeam, FTHG, FTAG, FTR, HTHG, HTAG, HTR)
SET Date = STR_TO_DATE(@Date, '%d/%m/%Y');

顺便说一句,您将日期信息存储为实际日期而不仅仅是文本,这绝对是正确的设计决策。将日期存储为文本会在您实际使用数据库时出现问题 table.