java Date转为mysql datetime毫秒数四舍五入 精度丢失的问题

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

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:00.499' WHERE id = 11;

转载于:https://my.oschina.net/wuxiaofei/blog/3030717

你可能感兴趣的:(java Date转为mysql datetime毫秒数四舍五入 精度丢失的问题)