在Linux上使用带有Python的LOAD DATA INFILE的TIMESTAMP字段错误

时间:2016-07-08 14:31:15

标签: python mysql

我们正在生成CSV格式的测试数据,并使用Python连接器将此CSV加载到MySQL中。在我们在数据库中引入TIMESTAMP数据类型之前,一切正常。

在我们的CSV中,我们有数百万行和一些行,只有部分行会抛出异常:

mysql.connector.errors.DataError: 1292 (22007): Incorrect datetime value: '2008-03-30 01:12:20' for column 'document_creation_time' at row 17088

我们的Python脚本中通过LOAD DATA INFILE语句传递的CSV中的日期值为:

  

30/03/2008 01:12:20

我们在LOAD DATA INFILE语句中用于将数据转换为TIMESTAMP的SQL表达式是:

STR_TO_DATE(@backup_time, \'%d/%m/%Y %T\')

有趣的是,如果我们使用MySQL Workbench的LOCAL参数执行相同的LOAD DATA INFILE语句(而不是通过Python),它就可以工作。

只有当我们通过Python连接器运行它时才会出现错误。

我们一直试图摆弄字符集,但没有运气。 CSV和数据库都应设置为UTF8。

我们陷入困境,有任何想法可以解决这个问题吗?

UPDATE1:当我们加载LOCAL时,选项值变为01:12:20变为02:00:00

0 个答案:

没有答案