我有一个csv文件,其日期字段的格式类似于(以及其他字段):
17DEC2009
当我执行mysqlimport时,其他字段已正确导入,但此字段仍为0000-00-00 00:00:00
如何正确导入此日期?我是否必须首先在文件上运行sed / awk命令才能将其设置为正确的格式?如果是这样,会是什么样的?月份是拼写而不是数字的事实吗?
答案 0 :(得分:5)
STR_TO_DATE()使您可以在查询中将字符串转换为正确的DATE。它需要日期字符串和格式字符串。
检查手册条目中的示例以确定正确的格式。
我认为它应该与%d%b%Y
一致(但是%b应该生成像Dec
而不是DEC
这样的字符串,所以你必须尝试它是否有效)。
答案 1 :(得分:1)
过去我遇到过这个问题。我必须做的是利用LOAD DATA并在此处设置适当的表达式 -
[SET col_name = expr,...]
答案 2 :(得分:1)
这是我解决类似问题的方法。我的用例有很多列有点复杂,但在这里简单介绍解决方案。 我有Persons表(Id int autogen,名称varchar(100),DOB日期),需要从CSV文件中填充数百万的数据(名称,DOB)。
同样的逻辑可以应用于甚至其他类型的数据格式化,如double,time_stamp等。