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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。