从CSV导入后,mysql日期显示为0000:00:00

时间:2013-03-22 13:23:18

标签: mysql csv import

我有一个大型CSV文件,其中包含按时间格式41354保存的日期,即21/03/2013

它在MS excel上显示正常但只是因为你可以将它格式化为日期YYYY-mm-dd

然而,一旦上传到数据库,它就会显示日期,如0000:00:00,只有按每个单元格超过phpymyadmin

才会转换为正常日期

尝试使用

加载文件
SET date = STR_TO_DATE(@date_conv, '%Y/%m/%d')

尝试了多种解决方案,但没有任何帮助。

编辑

表格如下

CREATE TABLE table1 (
  date date DEFAULT NULL
);

并创建一个新的1.csv文件并在超过ms excel的A1单元格上生成41354,将其格式化为日期,您将获得21/03/2013

现在将其上传到您的数据库,发现日期是0000:00:00

任何建议?

1 个答案:

答案 0 :(得分:1)

您需要为此值创建一个新日期:加上天数(41354)到'1900-01-01'。

例如(已编辑) -

文件file.csv:

41354

表:

CREATE TABLE table1 (
  date date DEFAULT NULL
);

查询:

LOAD DATA INFILE 'file.csv' INTO TABLE table1(@var)
  SET date = DATE('1900-01-01') + INTERVAL @var DAY;

输出:

SELECT * FROM table1;

+------------+
| date       |
+------------+
| 2013-03-23 |
+------------+