执行:SELECT @@SESSION.sql_mode;
查询结果中有NO_ZERO_DATE和NO_ZERO_IN_DATE,就是我们日期不能设为0000-00-00的原因了
原因:
NO_ZERO_IN_DATE,NO_ZERO_DATE是无法默认为‘0000-00-00 00:00:00’的根源。
NO_ZERO_IN_DATE:在严格模式下,不允许日期和月份为零
NO_ZERO_DATE:设置该值,mysql数据库不允许插入零日期,插入零日期会抛出错误而不是警告。
解决方法: 打开mysql.配置文件my.ini,查找sql_mode,将里面的NO_ZERO_IN_DATE,NO_ZERO_DATE删除

本文解释了MySQL中NO_ZERO_IN_DATE和NO_ZERO_DATE的作用,这两个选项禁止在数据库中使用零日期(如'0000-00-00')。文章提供了如何通过编辑my.ini文件中的sql_mode配置来移除这些限制的方法。
6844





