我有一个包含许多不同列的CSV文件,其中一列的日期为DD-MM-YYYY格式。现在mysql的默认格式是YYYY-MM-DD。我打算将我的CSV文件直接加载到我的mysql表中,但这可能会导致问题。我该怎么办 。 PS-我不打算在文件上运行其他语言的代码,所以我希望解决方案包括使用mysql本身。
答案 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)
你可以做两件事。
由于您的列格式直接为DD-MM-YYYY,因此您无法转换YYYY-MM-DD。您可以使用substr分别获取DD,MM,YYYY并插入表格中。
否则您可以存储为varchar而不是日期类型。