MySqlImport - 导入日期字段的格式不正确

时间:2010-01-17 00:52:35

标签: mysql mysqlimport

我有一个csv文件,其日期字段的格式类似于(以及其他字段):

17DEC2009

当我执行mysqlimport时,其他字段已正确导入,但此字段仍为0000-00-00 00:00:00

如何正确导入此日期?我是否必须首先在文件上运行sed / awk命令才能将其设置为正确的格式?如果是这样,会是什么样的?月份是拼写而不是数字的事实吗?

3 个答案:

答案 0 :(得分:5)

STR_TO_DATE()使您可以在查询中将字符串转换为正确的DATE。它需要日期字符串和格式字符串。

检查手册条目中的示例以确定正确的格式。

我认为它应该与%d%b%Y一致(但是%b应该生成像Dec而不是DEC这样的字符串,所以你必须尝试它是否有效)。

答案 1 :(得分:1)

过去我遇到过这个问题。我必须做的是利用LOAD DATA并在此处设置适当的表达式 -

[SET col_name = expr,...]

http://dev.mysql.com/doc/refman/5.1/en/load-data.html

答案 2 :(得分:1)

这是我解决类似问题的方法。我的用例有很多列有点复杂,但在这里简单介绍解决方案。 我有Persons表(Id int autogen,名称varchar(100),DOB日期),需要从CSV文件中填充数百万的数据(名称,DOB)。

  1. 在person表中创建了一个名为(varchar_DOB varchar(25))的附加列。
  2. 使用mysqlimport实用程序将数据导入到列(name,varchar_DOB)中。
  3. 使用str_to_date(varchar_DOB,' format')函数执行更新DOB列的更新查询。
  4. 现在,我预计数据会填充DOB列。
  5. 同样的逻辑可以应用于甚至其他类型的数据格式化,如double,time_stamp等。