2017-02-19 263 views
1

尝试使用mysql工作台Table Data Import Wizard将数据从csv导入到Mysql数据库。 csv包含格式为dd/mm/yyyy hh:mm:ss的数据时间字段(例如,28/01/2017 10:55:00 PM)。 如果我按默认设置转到,工作台将日期时间视为“TEXT”数据类型并成功导入数据。但是,如果我将数据类型更改为'DATETIME',则导入将以'0记录导入'结束。MySql Workbench csv将日期时间DATATYPE导入为TEXT

回答

0

日期格式dd/mm/yyyy不是标准,因此MySQL是把它当作文本。并迫使它加载日期时间这样的数据也是错误的。

这个问题是与STR_TO_DATE()函数的日期字符串转换成合适的日期以及适合于LOAD DATA

LOAD DATA INFILE 'input.csv' 
INTO TABLE t1 
FIELDS TERMINATED BY ',' 
(column1, @var1, column3, ...) 
SET column2 = STR_TO_DATE(@var1,'%d/%m/%Y %h:%i:%s %p') 

如果CSV文件中的第二列包含日期数据的上述LOAD DATA将是适当的。如果不是,那么只需重新排列它,以便正确的列被解析。