亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

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

如果報錯 Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp 是因為 jdbc默認最小時間 為 0001-01-01 00:00:00 所以轉換為 sql timestamp 失敗 解決辦法 在連接數據庫的url中加入&zeroDateTimeBehavior=convertToNull 類似 jdbc:mysql:///seckill?useUnicode=true&zeroDateTimeBehavior=convertToNull&characterEncoding=utf-8

正在回答

3 回答

如在測試queryByIdWithSeckill()方法的時候遇到了:

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

那是因為:SuccessKilled表在創建的時候,有create_time字段(屬性為timestamp),但并沒有給該字段設定默認值。后插入數據時,create_time字段的值就變成了:0000-00-00 00:00:00.?

"0000-00-00 00:00:00" 在MySQL中是作為一個特殊值存在的,但 java.sql.Date 將其視為不合法的值,格式不正確。

  • 解決辦法:?

    • 方法一:jdbc的url后面,追加上參數:

      ?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull

    • 方法二:給timestamp字段加上默認值

      如以當前時間作為默認值,這樣就不會是"0000-00-00 00:00:00"了。

1 回復 有任何疑惑可以回復我~
#1

不成不改昵稱

如何使timestamp變為當前時間呢
2017-07-09 回復 有任何疑惑可以回復我~
#2

Yoooshiki 回復 不成不改昵稱

在sql語句中加入 DEFAULT CURRENT_TIMESTAMP 就可以了,表示添加該字段如果沒有值,就會選擇當前時間作為默認值。 如: `create_time` TIMESTAMP not NULL DEFAULT CURRENT_TIMESTAMP
2017-07-09 回復 有任何疑惑可以回復我~
#3

不成不改昵稱 回復 Yoooshiki

okok
2017-07-09 回復 有任何疑惑可以回復我~
#4

dbcooper 提問者

非常感謝!
2017-09-12 回復 有任何疑惑可以回復我~
查看1條回復

為什么我賦了默認值這個字段還是null

0 回復 有任何疑惑可以回復我~

請問大佬,我在后臺怎么給時間字段賦值為當前時間呢,試過很多都沒解決,求幫助。

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

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

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號