我有一个大型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
任何建议?
答案 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 |
+------------+