专业的JAVA编程教程与资源

网站首页 > java教程 正文

mysq时间进位问题(mysql 当前时间函数)

temp10 2024-09-16 05:16:20 java教程 14 ℃ 0 评论

现象:mysql表有个时间类型字段,当往里写入由代码传进来的值为“2020-11-10 23:59:59.790”时,数据库字段存储的值却变成了“2020-11-11 00:00:00.000”,很奇怪,于是搜寻了一翻;

解释:mysql版本5.6.4 之后 , 新增了一个叫factional seconds的特性 , 可以记录时间的毫秒值,产生一个java中时间的Milliseconds超过500就会四舍五入的问题,于是又试了下,确实如此,写入“2020-11-10 23:59:59.499”时,数据库存储值也是一样,当写入“2020-11-10 23:59:59.500”时就进位了;

mysq时间进位问题(mysql 当前时间函数)

解法:

1、可以把字段精度设置大一些,datetime 和 timestamp 定义时是可以带精度的,精度值为 0~6,表示保留几位小数,默认值为 0。显然保留 3 位可看作精度为毫秒,保留 6 位可看作精度为微秒;

2、写入db前把毫秒改成500以下;

3、如果进位对于业务无任何影响也可以不关注

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表