服务器端的MySQL 是 5.5.54-0ubuntu0.12.04.1, 本地 MySQL 改用5.7 后, 某些 insert 语句由于对一些日期字段(datatime类型)默认插入'0000-00-00 00:00:00' 导致插入失败. 在 wampserver 下提示
Incorrect datetime value: '0000-00-00 00:00:00'
解决办法要么是修改出错的 insert 语句, 使得日期字段必须插入有效的日期值.
或者关闭 NO_ZERO_IN_DATE 模式. 这个存储在全局变量 @@global.sql_mode 中. 因此可以修改如下:
SET GLOBAL sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
mysql> select @@version;
+-----------+
| @@version |
+-----------+
| 5.7.23 |
+-----------+
1 row in set (0.00 sec)
mysql> select @@global.sql_mode;
+-----------------------------------------------------------------------------------------------+
| @@global.sql_mode |
+-----------------------------------------------------------------------------------------------+
| STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER |
+-----------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
References:
https://www.cnblogs.com/11120511cmd/p/12428030.html