mysql 秒与java毫秒之间的问题

 

问题

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. 保证入参不出现毫秒(如果出现的话,特殊处理一下到秒)
 

图1

 

图2

 

 

 图3

结论:

1. .毫秒(精确到毫秒) 。 如图1,   数据库到秒后面应该是秒.0  去比较的
2. :毫秒 (精确到秒,后面的毫秒直接忽略掉了)。  如图2 

3.  mysql  请求数据库用的是. 毫秒的形式。 如3

posted @ 2020-11-11 15:55  知行-zhixing  阅读(385)  评论(0编辑  收藏  举报