java Date 转mysql timestamp 秒数不一致

Posted -xuzhankun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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暂时还不能只设置成一个表一个字段忽略毫秒数)

以上是关于java Date 转mysql timestamp 秒数不一致的主要内容,如果未能解决你的问题,请参考以下文章