迁移-Mongodb时间类数据比较的坑

背景:mongodb

拦截件监控时,对于签收的数据须要比较签收时间和实际同步数据的时间来判断  同步时间是在签收前仍是签收后。在比较时,用到同步时间syncTime和signTime, signTime从Q9查单获取,为 local time,syncTime 在 mongodb 中查出,为 UtcTime。api

 

问题app

在 utc time 和 local time 比较时,不会带着时区比较,如图url

致使监控数据比较时,判断差了8h。大部分数据都是下发时间在签收后的,可是被判断成在签收前, 发现该问题是经过跟着几条同步时间在签收前的单号进行逐条查单才发现。spa

 

解决:同步

在比较时,必定要都转成 utc time 再进行比较。io

 

总结:
 
  1. 在这种时间比较时,必定要注意时区统一
      2. mongodb在存储时,会将local time默认转成 utc time 存储
      3. mongodb在存储时,会将utc time 直接存储
      4. mongodb在取数据时,直接取出utc time
相关文章
相关标签/搜索