问题

软件 >> MySQL
Questions in category: MySQL (MySQL).

Incorrect datetime value: '0000-00-00 00:00:00'

Posted by haifeng on 2020-10-14 20:08:01 last update 2020-10-14 20:11:13 | Answers (0) | 收藏


服务器端的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