如何使用错误的日期格式将数据输入到mysql表中

时间:2016-06-11 08:21:42

标签: mysql csv

我有一个包含许多不同列的CSV文件,其中一列的日期为DD-MM-YYYY格式。现在mysql的默认格式是YYYY-MM-DD。我打算将我的CSV文件直接加载到我的mysql表中,但这可能会导致问题。我该怎么办 。 PS-我不打算在文件上运行其他语言的代码,所以我希望解决方案包括使用mysql本身。

2 个答案:

答案 0 :(得分:0)

如果您能够执行多个步骤,则可以先将csv导入到一个中间表中,该表与实际数据表具有相同的属性,但日期列除外。

然后您可以将其插入真实表格并在选择

时格式化日期字符串
INSERT INTO realTable (/* ... */) 
    SELECT /*.... */, STR_TO_DATE('01-5-2013','%d-%m-%Y') 
    FROM intermediateTable;

准备好截断表格时,完成。应该在事务中完成,这样如果出现问题就可以回滚。

编辑: 似乎是一种更好的方法:https://stackoverflow.com/a/4963561/3595565因此,您应该能够在使用变量导入时格式化日期

答案 1 :(得分:0)

你可以做两件事。

  1. 由于您的列格式直接为DD-MM-YYYY,因此您无法转换YYYY-MM-DD。您可以使用substr分别获取DD,MM,YYYY并插入表格中。

  2. 否则您可以存储为varchar而不是日期类型。