Java+mybatis+mysql:Date类型保存为datetime时,毫秒的影响
java使用mybatis框架,将Date类型存储为datetime时,会受到Date毫秒值的影响。
描述:开发过程中先存储Date数据到数据库中,然后将Date格式化为yyyy/MM/dd HH:mm:ss ,调用其他接口进行操作,发现数据库中的时间比接口重新生成的时间多一秒。
直接使用mysql进行测试
CREATE TABLE `test` (
`time` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
插入时间操作
insert into test (time) value('2019-10-12 10:20:09.3');
insert into test (time) value('2019-10-12 10:20:09.4');
insert into test (time) value('2019-10-12 10:20:09.49');
insert into test (time) value('2019-10-12 10:20:09.4999');
insert into test (time) value('2019-10-12 10:20:09.5');
insert into test (time) value('2019-10-12 10:20:09.500');
insert into test (time) value('2019-10-12 10:20:09.6');
insert into test (time) value('2019-10-12 10:20:09.7');
结果
毫秒数第一位大于5时,就会多加一秒,小于5就不会,只与第一位有关,.4999也不多家一秒。
没有找到官方说明,个人测试,不足之处还请指正。