1292 - Incorrect datetime value: '0000-00-00 00:00:00' for column 'targetTime' at row 1 的完美解決方案


       上次在navicat上遠程連接MySQL,運行存儲過程時傳入了一個時間參數‘0000-00-00 00:00:00’,發生如下錯誤:

 1292 - Incorrect datetime value: '0000-00-00 00:00:00' for column 'targetTime' at row 1,官方文檔上說明MySQL允許將

’0000-00-00’保存為“偽日期”,但是MySQL有一個NO_ZERO_DATE SQL模式,這是mysql5.7版本以后出現的(具體是版本問題引起的),這個模式默認是打開的,不允許產生偽日期,所以要關掉這個選項。執行SQL語句:

select @@global.sql_mode ,可以看到NO_ZERO_DATE SQL,然后執行SET GLOBAL sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

然后執行show variables like '%sql_mode%'; 來查看是否存在查看關於sql_mode的變量,如果沒有NO_ZERO_IN_DATE和NO_ZERO_DATE就說明修改成功,最后一定要記得net start mysql,刷新你的表和數據庫,然后就可以解決了。

直接上命令:

  select @@global.sql_mode
  SET GLOBAL sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
  show variables like '%sql_mode%';
  net start mysql 

  刷新!!!!!  

  參考1:https://www.jb51.net/article/155013.htm  

  參考2:https://blog.csdn.net/coder_slsu/article/details/88415476

ps:博客寫的很爛,大家多批評交流。。。。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM