我有一个 csv 文件,我正在尝试解析一堆字符串,其中一些是我数据库中的日期格式。代码看起来有点像这样:
load data infile '/temp/db.csv'
into table db.dbtable
fields terminated by '|'
lines terminated by '\n'
ignore 1 rows
(db_id,
dbtable_field1,
db_date,
db_date2)
set
db_date = convert(char(10), Datetime),
db_date2 = convert(char(10), Datetime);
每次我执行它都会出现这个错误:
Error Code: 1292. Incorrect datetime value: '<date time>' for column 'db_date' at row 1
我一直在使用 stackoverflow 和其他方法来尝试让它工作,但似乎没有任何工作。我在这里错过了一些重要的事情吗?
- 编辑 -
csv 文件看起来有点像这样:
db_id|dbtable_field1|db_date|db_date2
123|0025AAA|8/12/2014 10:24:32 AM| 8/12/2014 10:24:32 AM
124|0096AB54|2/26/2013|2/26/2013
125|0085ABDE|10/2/2014 4:56:00 PM|10/2/2014 4:56:00 PM
此块不完全是我的 csv 文件,但格式相同。如您所见,日期格式发生了变化,因此我无法使用预定义的日期格式。目前我只是将其解析为 varchar(25) 以便将其简单地放入数据库,但将其解析为日期以供进一步工作将在以后有用(即日期比较测试)。
我以多种方式做到了这一点,包括:
db_date = str_to_date(@db_date, '%c/%d/%Y %h:%i:%s %p');
和
db_date = convert(char(10), getDate(), 125);
由于日期格式不一致,两者都没有工作。