java Date 轉mysql timestamp 秒數不一致


mysql的字段類型是timestamp(0), java的類型的是util.Date, 在插入數據的時候發現, 數據庫的實際數據秒數比預想的數據偶爾會大1秒.

 

問題的原因:

  mysql的timestamp(0), 沒有保留毫秒, 插入的時候, mysql會計算毫秒數, 所以會偶發數據庫的秒數比參數大1秒.

 

解決方案:

  1: timestamp(0) 改為 timestamp(3), 保留3位的毫秒數

  2: 參數的毫秒值設置為0

  3: 修改數據庫的字段類型, 存儲時間戳 或者 用字符串存儲,

  4: 降低mysql版本或者降低驅動版本(這種辦法會把所有的毫秒數都忽略(000), 如果是時間精度要求高的業務就涼涼了, 不太推薦. mysql暫時還不能只設置成一個表一個字段忽略毫秒數)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM