文章目录
问题
数据插入mysql时报错
部分关键内容如下
bash
Incorrect datetime value: '0000-00-00' for column 'createdAt' at row 1
解决
原因
从MySQL 5.7.5开始,默认情况下不允许插入零日期或零时间值到DATETIME或 TIMESTAMP列。
实际是因为SQL模式包含NO_ZERO_DATE,禁止零日期
处置
- 查看mysql模式
bash
SELECT @@GLOBAL.sql_mode;
+-----------------------------------------------------------------------------------------------------------------------+
| @@GLOBAL.sql_mode |
+-----------------------------------------------------------------------------------------------------------------------+
| ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION |
+-----------------------------------------------------------------------------------------------------------------------+
1 row in set (0.02 sec)
- 修改模式
bash
SET GLOBAL sql_mode = REPLACE(@@GLOBAL.sql_mode, 'NO_ZERO_DATE', '');
修改完毕后即可插入零日期,然后由建表语句时的设置插入当前时间等等。