【mysql】数据报错: incorrect datetime value ‘0000-00-00 00:00:00‘ for column
报错解释:
MySQL中出现这个错误通常是因为尝试将不合法的日期时间值('0000-00-00 00:00:00')插入或更新到一个设置为不允许“zero”日期(即年月日为0000-00-00)的列。从MySQL 5.7版本开始,默认设置就不允许使用'0000-00-00'这样的“zero”日期值。
解决方法:
- 如果你的应用逻辑允许,可以修改插入的值为一个合法的日期,如'1000-01-01'或更近的合法日期。
如果你需要保留'0000-00-00 00:00:00'这个值,可以修改MySQL的SQL模式来允许“zero”日期。这可以通过以下SQL命令实现:
SET GLOBAL sql_mode = (SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
或者在配置文件my.cnf(或my.ini)中设置:
[mysqld] sql_mode=
注意:修改SQL模式可能会影响其他数据校验规则,确保了解修改的后果。
- 如果你不希望修改全局设置,可以在应用程序中检测到'0000-00-00 00:00:00'这个值时,在插入或更新前进行处理,例如转换为NULL或者合法的默认值。
确保在进行任何修改前备份数据库和相关配置,并在修改后进行充分测试,以确保不会引入其他问题。
评论已关闭