在Mysql數據庫中使用DATETIME類型來存儲時間,使用JDBC中讀取這個字段的時候,應該使用 ResultSet.getTimestamp(),這樣會得到一個java.sql.Timestamp類型的數據。在這里既不能使用 ResultSet.getDate(),也不能使用ResultSet.getTime(),因為前者不包括time數據,后者不包括date數據。
但是在使用ResultSet.getTimestamp()時也不是完全安全的,例如,當數據庫中的TIMESTAMP類型的字段值為 '0000-00-00 00:00:00'時,使用此方法進行讀取,會拋出異常:Cannot convert value '0000-00-00 00:00:00' from column 1 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'。
解決方案 1.String url = "jdbc:mysql://localhost:3306/test?relaxAutoCommit=true& zeroDateTimeBehavior=convertToNull ";
注意符號"&"如果不成功的話,?需要轉換成特定的字符,如下表所示,即把"&"轉換為&
?
在xml文件中有以下幾類字符要進行轉義替換:
?
< |
< |
小于號 |
> |
> |
大于號 |
& |
& |
和 |
' |
' |
單引號 |
" |
" |
雙引號 ? |
Cannot convert value '0000-00-00 00:00:00' from column 1 to TIMESTAMP解決辦法
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
