资料:
https://www.cnblogs.com/interdrp/p/9148719.html
问题
java 时间戳的精度是到秒, 有些场景需要注意
老合同结束时间是1号(23点59分59秒)
新合同开始时间是2号(0点0分0秒)、
java 应用query的时候,是匹配精度是到毫秒的(已经验证)
这样的话, 若请求参数到毫秒例如 1号(23点59分59秒100毫秒), 将新老合同都匹配不上。
解决方案:
1. mysql的精度精确到毫秒:老合同的结束时间是1号(23点59分59秒999毫秒), mysql 默认精度是到秒(到毫秒的话, 需要特殊设置)
2. 不需要透传给用户看:老合同的结束时间为是2号(0点0分0秒), 判断的时候,前开后闭的方式。这样如果透传给用户看, 用户看到会比较费解,况且2号0点的时候并不优惠。
3. 保证入参不出现毫秒(如果出现的话,特殊处理一下到秒)