Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp


一、問題分析

問題

Error querying database. Cause: java.sql.SQLException: Value'0000-00-00 00:00:00' can not be represented as java.sql.Timestamp

分析

datetime數據庫中可為空,其默認值為“0000-00-0000:00:00”,因MySQL的時間類型datetime范圍是1000-01-01 00:00:00 到 9999-12-31 23:59:59,所以報錯。

二、解決方案

1、在配置數據庫連接的url上添加zeroDateTimeBehavior的配置。

示例:
修改前jdbc配置:

jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8&characterSetResults=UTF-8

修改后jdbc配置 :

jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull

2、zeroDateTimeBehavior的所有配置:

  • 沒有配置。

拋出異常如上所示

  • zeroDateTimeBehavior=round

返回值為 0001-01-01 00:00:00.0

  • zeroDateTimeBehavior=convertToNull

返回值為 null

3、注意事項

如果是xml配置,需要轉義:

轉義符號 原符號 含義
&lt; < 小於號
&gt; > 大於號
&amp; &
&apos; 單引號
&quot; " 雙引號


免責聲明!

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



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