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 秒数不一致的主要内容,如果未能解决你的问题,请参考以下文章

(转)java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明)

(转)java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明)

CentOS7下安装MySQL5.7安装与配置(转)

java 中的Date和Timestamp的区别

java向mysql插入时间,时间日期格式化

数据库mysql中,想建立一个默认值是系统当前时间的字段,那么这个字段的类型必须是timestam