處理MySQL中0時時間數據問題的辦法

現象:
在Mysql數據庫中使用DATETIME類型來存儲時間 一般情況下最好在jdbc中使用getTimestamp()方法獲取Timestamp格式的時間,然後在轉化成Java的Date。如果遇到要在ResultSet 獲取值爲”或’0000-00-00 00:00:00′這樣的數據時(rs.getDate(’gmt_sync’)或 rs.getTimestamp(’gmt_sync’)等類似方法),就會出現如下:java.sql.SQLException: Value ‘0000-00-00 00:00:00′ can not be represented as java.sql.Date;或是java.sql.SQLException: Cannot convert value ‘0000-00-00 00:00:00′ from column 12 to TIMESTAMP.
這是因爲JDBC不能將’0000-00-00 00:00:00′轉化爲一個爲一個java.sql.Timestamp,在Java中,想創建一個java.util.Date,使其值爲 ‘0000-00-00′也是不可能的,最古老的日期應該是’0001-01-01 00:00:00′。
解決:
在url中加入zeroDateTimeBehavior=convertToNull 如:jdbc:mysql://10.2.225.97/c2c? zeroDateTimeBehavior=convertToNull這樣在處理如上數據值時,將會返回null,這樣就可以做相應的處理了。
發佈了58 篇原創文章 · 獲贊 0 · 訪問量 3370
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章