mysql 0000-00-00更新错误

时间:2017-12-18 19:26:56

标签: mysql sql mysql-error-1292

我正在尝试将我的日期字段更新为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    |                |

2 个答案:

答案 0 :(得分:1)

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

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

SET sql_mode=(SELECT CONCAT(@@sql_mode,',NO_ZERO_DATE'));

答案 1 :(得分:0)

我有同样的问题。如果您的表中有一个最小有效日期,假设它是“ 1950-01-01”,则可以执行以下操作:

update table set rel_date = NULL where rel_date < '1950-01-01'