Value ‘0000-00-00 00:00:00’ can not be represented as Timestamp

NO IMAGE

問題:

  程式碼中查詢MySQL的結果集時報錯,提示Value ‘0000-00-00 00:00:00’ can not be represented as java.sql.Timestamp;剛開始以為是程式碼中格式化結果集中的日期報錯,找了一遍發現並沒有對日期進行格式化,發現是查詢的結果集中某資料行的日期值為0000-00-00 00:00:00。因MySQL的時間型別datetime範圍是1000-01-01 00:00:00 到 9999-12-31 23:59:59,所以報錯。

解決方法:

  將日期改為正常日期即可。

轉載說明

最近線上程式碼沒有改動,但頁面沒有任何資料,追查日誌發現錯誤如文中所述,隨之搜尋一番,發現問題與此相同,後得知是另一位同事增加了一個時間欄位,預設值設定的是“0000-00-00 00:00:00”,因此報錯,參考原作者的解決方案得以解決,便記錄一下。

原文連結如下:
錯誤:Value ‘0000-00-00 00:00:00’ can not be represented as java.sql.Timestamp;的解決