1. 程式人生 > >java Date轉為mysql datetime毫秒數四捨五入 精度丟失的問題

java Date轉為mysql datetime毫秒數四捨五入 精度丟失的問題

開發十年,就只剩下這套架構體系了! >>>   

mysql的datetime型別不是時間戳,所以精度只到秒,java.util.Date是一個毫秒數時間,所以java.util.Date到mysql datetime,必然會面臨精度丟失。 如果場景比較嚴格,這會導致問題,比如,一個方法裡剛剛insert了一條資料,提交事務之後,通過sql查詢卻查不到。

在mysql-connector-java版本<=5.1.22是,會直接丟棄毫秒數,但是在之後的版本,會進行四捨五入。可以使用sql進行測試重現這個問題,比如 UPDATE table_A SET START = '2019-01-04 00:00:00.599' WHERE id = 11; UPDATE table_A SET START = '2019-01-04 00:00:0