[Err] 1292 - Incorrect datetime value: 0000-00-00 00:00:00 for column xxx at row 1

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.解決問題

  1. 查詢sql_mode
# 查看當前sql_mode
select @@sql_mode;
# 查看全局sql_mode
select @@global.sql_mode;
  1. 修改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';
  1. 關閉數據庫再開啓就生效了~
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章