问题:
在本月开发的时候,有一个问题,就是数据库时间和服务器时间不一致导致定时任务计数一直有问题。
数据库时间别当前时间慢2分钟
服务器时间和当前时间一致
现象:
在我们操作一个业务的时候,操作完,要用定时任务的sql语句更新统计数据。sql中使用的是: 时间字段 = sysdate
,相当于更新的时候使用的是数据库系统时间。我们业务里面都使用服务器时间来做处理的。定时任务时间设置又很短。所以当我们更新的时候,这个业务数据一直不能被统计。
查询数据库系统时间(我们用的是oracle):SELECT SYSDATE FROM DUAL;
解决方法:
sql中不使用sysdate字段,从业务字段中用Date date = new date()
,再把date传到sql里:时间字段 = {#date}
,这样处理的业务使用时间和sql中使用的时间保持一致,重新验证后发现问题解决了。