今天发现一奇怪问题: 数据表中时间字段为datetime类型,插入的时间数据为2020-10-29 23:59:59.999,但保存成功后再查看,数据变为2020-10-30 00:00:00。将数据类型换成timestamp,问题同样存在。
原因在于:MySQL数据库对于毫秒大于500的数据进行进位。
原代码
// 获取当前日期的最后一秒
DateTime dateTime = cn.hutool.core.date.DateUtil.endOfDay(new Date()); // 实际dateTime = 2020-10-29 23:59:59.999
修改后代码(减去毫秒数999)
DateTime dateTime = cn.hutool.core.date.DateUtil.endOfDay(new Date()).offset(DateField.MILLISECOND,-999); // 实际dateTime= 2020-10-29 23:59:59
网友评论