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暂时还不能只设置成一个表一个字段忽略毫秒数)
原文地址:https://www.cnblogs.com/-xuzhankun/p/10867435.html
时间: 2024-10-08 10:59:22