我们正在生成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