0

我正在尝试将我的日期字段更新为 null 而不是 0000-00-00,但我出错了。

 ERROR 1292 (22007): Incorrect date value: '0000-00-00' for column 'rel_date' at row 1

但是我可以单独更新记录吗?

 update table set rel_date = NULL where id = 12;

但如果我尝试

update table set rel_date = NULL where rel_date like '%0000%'
or
update table set rel_date = NULL where rel_date = '0000-00-00'
I get ERROR 1292 (22007): Incorrect date value: '0000-00-00' for column 'rel_date' at row 1

图式

id              | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| document_id   | varchar(40)      | NO   | MUL | NULL    |                   |
| revision_date | date             | YES  |     | NULL    |                |
4

2 回答 2

1
SET sql_mode=(SELECT REPLACE(@@sql_mode,'NO_ZERO_DATE',''));

运行更新命令。关闭 mysql 实例或可能添加回当前会话。

SET sql_mode=(SELECT CONCAT(@@sql_mode,',NO_ZERO_DATE'));
于 2017-12-18T19:48:53.640 回答
1

我有同样的问题。如果您的表中有一个最小有效日期,假设它是“1950-01-01”,那么您可以这样做:

update table set rel_date = NULL where rel_date < '1950-01-01'
于 2018-10-30T20:13:48.837 回答