mysql自动将23:59:59.999保存成00:00:00的问题记录

今天发现一奇怪问题: 数据表中时间字段为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

你可能感兴趣的:(mysql自动将23:59:59.999保存成00:00:00的问题记录)