现有" DateTime"具有不正确的DateTime值的列。
值为" 0000-00-00 00:00:00"。
因此,我以这种方式改变我的桌子:
ALTER TABLE `my_table` MODIFY `my_datetime` DATETIME DEFAULT NULL;
现在我想将错误的值更新为NULL。
但是这个查询不起作用:
UPDATE `my_table`
SET `my_datetime` = NULL
WHERE `my_datetime` = '0000-00-00 00:00:00'
我收到此错误消息:
日期时间值不正确:' 0000-00-00 00:00:00'对于专栏 ' my_datetime'在第1行
但如果我尝试选择值,我会得到一个结果。
SELECT * FROM `my_table`
WHERE `my_datetime` = '0000-00-00 00:00:00'
那我该如何将所有错误的值更新为NULL?
答案 0 :(得分:2)
可以使用ALLOW_INVALID_DATES, 因为Mysql 5.7非常严格。
SET sql_mode = 'ALLOW_INVALID_DATES';
UPDATE my_table
SET my_datetime = NULL
WHERE my_datetime = '0000-00-00 00:00:00';