网站首页 > java教程 正文
现象: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”时就进位了;

解法:
1、可以把字段精度设置大一些,datetime 和 timestamp 定义时是可以带精度的,精度值为 0~6,表示保留几位小数,默认值为 0。显然保留 3 位可看作精度为毫秒,保留 6 位可看作精度为微秒;
2、写入db前把毫秒改成500以下;
3、如果进位对于业务无任何影响也可以不关注
猜你喜欢
- 2024-09-16 Java程序员们请你不要用战术上的勤奋掩盖你自己站略上的懒惰
- 2024-09-16 Java中存储金额用什么数据类型?(java用什么数据类型表示金额)
- 2024-09-16 java 坐标类_java实现坐标(java中坐标)
- 2024-09-16 MySQL常用函数,程序员真得看看(mysql函数用法)
- 2024-09-16 Java中Double保留后小数位的几种方法
- 2024-09-16 Java面试官问我10道题,我答错了一半,你能答对多少?
- 2024-09-16 java.util.Math类--数学相关的工具类
- 2024-09-16 怎么让四舍五入都不亏?(怎么四舍五入到个位)
- 2024-09-16 一张图彻底搞懂Java取整函数ceil、floor、round的区别!建议收藏
- 2024-09-16 Java中的金额处理的精度问题(java金额比较大小方法)
欢迎 你 发表评论:
- 12-03驱动大师下载(驱动大师下载官方下载)
- 12-03华为最新版本系统(华为最新版本系统微信打不开)
- 12-03photoshop cs6 序列号(photoshopcs6序列号)
- 12-03上海联想笔记本售后维修服务网点
- 12-02应用软件app(应用软件APP排行榜前十名)
- 12-02win11有必要经常更新系统吗(win11值不值得更新)
- 12-02u盘在电脑上读不出来是什么原因
- 12-02家庭路由器哪种比较好用(家庭路由器哪种比较好用2020年)
- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)

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