2012-11-22 71 views
0

没有秒我需要能够从一个CSV文件(我不能改变)导入到mysql数据库的日期和时间,看起来像这样在csv = 201210021015导入时间/日期从CSV

YYYYMMDDHHMM。 ..但没有秒

当我导入201111221420DATETIME我得到奇怪的结果,如2020-11-11

A TIMESTAMP格式忽略小时和分钟。

有谁能提醒一下吗?

+1

它看起来像代码假设你有YYMMDDHHMMSS格式,并且正在用当前世纪代替'缺失'CC(因此201111221420被视为2020-11-11 21:14:20而不是2011-11-22 14:20:00)。一种修复方法是将缺少的00添加到字段末尾(在导入之前编辑CSV文件,也许使用[CSVFix](http://code.google.com/p/csvfix/))。可能有其他方法来达到您的要求的结果。 –

+0

这很有道理,谢谢乔纳森。我想如果必须调整csv,但那会变成一件持续的杂事。我想'修复'它在MySQL中,如果我可以...... – highfidelity

+0

有可能简单的解决方案,你如何在MySQL中导入CSV文件?如果你只导入一次csv文件,你可以使用记事本++做一些奇妙的事情...... – Justin

回答

0

使用str_to_date()功能是这样的:

像这样的东西应该工作:

load data infile 'myfile.csv' 
into table xxx 
fields terminated by ',' 
lines terminated by '\n' 
(@col1) 
set 
    col1 = str_to_date(@col1, '%Y%m%d%H%i') 
+0

谢谢dnagirl,这对我很好。现在全部运行起来。 – highfidelity

0

尝试一个大整数格式,而不是日期格式

+0

为什么会有这种帮助?你能证明它如何帮助吗? –

+0

一个大整数格式可以简单地存储YYYYMMDDHHMM数字而不用任何格式。之后您可以使用代码格式化数字。只是一个想法;它可能或可能不是您的需求的最佳解决方案。 –