截断不正确的日期时间值mysql

时间:2015-04-05 02:51:08

标签: mysql datetime

我正在尝试将我的字符串转换为日期时间,并且它适用于某些但不是全部。我认为这是因为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');

1 个答案:

答案 0 :(得分:3)

您可以使用substring_index()

update marketwatch_data
    set `datetime` = STR_TO_DATE(substring_index(`Update Time`, '.', 3),
                                 '%Y-%m-%d %h.%i.%s');