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