1.錯誤提示
[Err] 1292 - Incorrect datetime value: '0000-00-00 00:00:00' for column 'created_at' at row 1
2.分析原因
之前就已經遇過幾次這種報錯提示了,今天它又蹦出來了,爲了養成做筆記的習慣在這裏做個小小的記錄,順便蹭蹭訪問量~
- 上述報錯中可以看出給datetime這種類型的字段賦值爲
0000-00-00 00:00:00
是不被支持的,這是數據庫模式的設置,好像8.0版本的mysql就沒有這個問題
3.解決問題
- 查詢sql_mode
# 查看當前sql_mode
select @@sql_mode;
# 查看全局sql_mode
select @@global.sql_mode;
- 修改sql_mode(將上述查詢到的sql_mode中的NO_ZERO_DATE和NO_ZERO_IN_DATE刪除即可)
# 修改全局
set @@global.sql_mode = 'STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
# 修改當前
set @@sql_mode = 'STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
- 關閉數據庫再開啓就生效了~