背景
业务中有个配置表,定时进行更新,并根据更新时间清除历史数据
现象
偶发配置表所有数据都被清空了,正常每次定时更新都存在数据
原因
业务开始通过new Date()记录时间戳2024-03-22 10:59:59.520,每次进行数据更新(包含新增)数据时,update_time为2024-03-22 10:59:59.678,插入到数据库后变成了2024-03-22 10:59:59, 然后根据记录的时间戳进行清除数据,导致新增的数据也被清除了
解决办法
1.自定义获取当前时间的方法将毫秒设置为000
2.将字段设置为精度修改为毫秒 DATETIME(3)