關於Java讀取mysql中date類型字段默認值'0000-00-00'的問題

    今天在做項目過程中,查詢一個表中數據時總碰到這個問題:
     java.sql.SQLException:Value '0000-00-00' can not be represented as java.sql.Date
查看數據庫,發現某一字段爲date類型,字段值爲'0000-00-00' ;查看代碼,我用的是rs.getString("字段名");於是把代碼改成getDate("字段名");問題依舊!
    查找資料發現:在數據庫連接url後面加上zeroDateTimeBehavior=convertToNull,問題解決。
 
   原來,"0000-00-00"在mysql中是個特殊值,作爲date類型變量的默認值。而Java卻不認賬,把它作爲非法值看待,導致出錯。解決辦法如上所述,資料上還有一種解決方式,時間關係我沒有試,不知結果如何:zeroDateTimeBehavior=round
 
   其實,mysql中datetime類型的變量會遇見相似的問題,只不過它的默認值是"0000-00-00 00:00:00 "。解決方法也是一樣。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章