【问题标题】:Import date from csv file as DATE format in MySQL database从 csv 文件导入日期为 MySQL 数据库中的 DATE 格式
【发布时间】:2019-01-27 06:10:39
【问题描述】:

我有一个 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

【问题讨论】:

    标签: mysql csv date import converter


    【解决方案1】:

    您可以使用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');
    

    顺便说一句,通过将日期信息存储为实际日期,而不仅仅是文本,您绝对做出了正确的设计决策。将日期存储为文本为以后实际使用数据库表时出现问题打开了大门。

    【讨论】:

    • 嗨,蒂姆,没有错误,但日期列保持为空(全为 NULL)。我刚刚在你的代码中更改了路径和表名,有什么我遗漏的吗?
    • 所以你是说整个表都使用我的答案加载,除了日期列到处都是空的?或者,你是说什么都没有加载?我没有看到我的代码有任何逻辑问题。如果您的日期字符串都是您显示的,那么我认为它应该可以工作。
    • 是的,不知道我做了什么不同,但现在又试了一次,它起作用了……谢谢蒂姆!
    猜你喜欢
    • 1970-01-01
    • 2013-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多