2013-03-22 92 views
1
导入后

我有一个大CSVfile包含由时间格式41354这是保存在它的日期21/03/2013MySQL的日期显示:00:00从CSV

它显示了优良的MS但只是因为你可以格式化它的日期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并在A1单元格41354以上的MS Excel,格式化到目前为止,你会得到21/03/2013

现在把它上传到你的数据库,以发现日期为0000:00:00

什么建议吗?

回答

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 | 
+------------+ 
+0

这是要返回只有当天的价值,但月和年保持不变?换句话说,我越来越1900-01-22而不是正确的月份和年份 – 2013-03-22 15:33:04

+0

它的工作原理,我已修改示例,尝试解决方案。 – Devart 2013-03-22 15:41:23

+0

41354是2012年3月21日,如果您将单元格值更改为MS Excel中的常规值,然后至今,这是正确的日期而非23 – 2013-03-22 16:04:43

相关问题