1525 - Incorrect DATE value: '2018-11-31'


老項目遷移后導入Excel報錯:

javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: could not extract ResultSet

      Caused by: org.hibernate.exception.GenericJDBCException: could not extract ResultSet

      Caused by: java.sql.SQLException: Incorrect DATE value: '2018-11-31'

  一開始以為是解析問題,排查了好久,數據庫也沒有日期為'2018-11-31'的數據。

  還把生產環境的數據導入本地debug測試,沒能復現異常。

后來發現本地MySQL是5.7,線上是8.0.20。復制SQL到生產環境一執行果然報錯了。

原因是老代碼中查詢月份內的數據,月初那天拼接"01",月末那天拼接"31",然后同樣的SQL在5.7是可以執行的。但是8.0增加了校驗,條件不合法也會報錯。

11月只有30號,沒有31號,把拼接字符串修改為獲取指定日期的月份最后一天,問題解決了。

參考https://www.cnblogs.com/will-666/p/11378783.html

還推薦一個日期處理工具:

Joda-Time

 


免責聲明!

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



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