我正在尝试将我的字符串转换为日期时间,并且它适用于某些但不是全部。我认为这是因为mysql不了解毫秒。但有没有办法告诉它忽略毫秒,或者如何在最后一段时间后删除该部分,创建一个新列,并将该列转换为datetime。结果和输入如下所示。
我正在使用set @@sql_mode='no_engine_substitution';
,我在另一个stackoverflow问题上找到了它,但它似乎没有帮助。
1292 Truncated incorrect datetime value: '2015-03-16 08.36.20.814000'
Rows matched: 156192044 Changed: 105813258 Warnings: 156088004
我使用上一个问题中建议的方法来转换它们。 Convert String to Datetime Object in SQL
我的更新查询是:
update marketwatch_data set `datetime` = STR_TO_DATE(`Update Time`,'%Y-%m-%d %h.%i.%s');
答案 0 :(得分:3)
您可以使用substring_index()
:
update marketwatch_data
set `datetime` = STR_TO_DATE(substring_index(`Update Time`, '.', 3),
'%Y-%m-%d %h.%i.%s');