我需要更改我的数据库中的一些值。
我忘记将表设置为可空,它现在默认设置为0000-00-00 00:00:00。
现在我需要将该值转换为NULL
。
该字段的类型是日期时间。
我该如何做?
我尝试使用典型的Update table set field = NULL WHERE field = '0000-00-00 00:00:00';
但它不起作用。
我需要更改我的数据库中的一些值。
我忘记将表设置为可空,它现在默认设置为0000-00-00 00:00:00。
现在我需要将该值转换为NULL
。
该字段的类型是日期时间。
我该如何做?
我尝试使用典型的Update table set field = NULL WHERE field = '0000-00-00 00:00:00';
但它不起作用。
您需要先将该列设为可空:
ALTER TABLE mytable MODIFY COLUMN field DATETIME NULL;
然后更新这些值:
UPDATE mytable SET field = NULL WHERE field = '0000-00-00 00:00:00';
SET sql_mode=(SELECT REPLACE(@@sql_mode,"NO_ZERO_DATE", ""));
UPDATE mytable SET field = NULL WHERE field = '0000-00-00 00:00:00';
首先,您需要将列设置为可空:
@Mysql5.7
错误的写法:
update episodes set `ending` = NULL WHERE `ending` = '0000-00-00'
正确:
update episodes set `ending` = NULL WHERE `ending` = 0000-00-00
UPDATE episodes SET ending = NULL WHERE ending = 0;
。 - MichielB对我有效的方法是:
很遗憾,这不会起作用。
for:
update episodes set `ending` = NULL
WHERE `ending` = '0000-00-00'
0000-00-00
,则会出现以下错误:即使在字段定义中,"1292 -列'ending'的时间值不正确:'0000-00-00',位于第1行。"
ending
为NULL
且default=null
。与此相关的是编程问题。