使用时间戳差异获取错误的值

问题描述 投票:-1回答:1

我有两个DAYTIME类型的字段,当我使用函数timestampdiff(t1,t2)时,它返回一个错误的值,这里是示例:

timestampdiff(SECOND, t.wfStartTimestamp, t.wfEndTimeStamp) 

(那两个字段实际上是白天)

当它应该返回15时返回89734,有什么建议吗?

mysql
1个回答
0
投票

被比较的DATETIME值不是您认为正在比较的DATETIME值。这是一个建议......

运行如下查询:

SELECT t.wfstarttimestamp 
     , t.wfendtimestamp
     , TIMESTAMPDIFF(SECOND,t.wfstarttimestamp,t.wfendtimestamp) AS secs
  FROM t
 WHERE ...
 ORDER
    BY ...
 LIMIT ... 

并发布结果。我们可以添加演示,显示内置的TIMESTAMPDIFF函数根据文档运行。除非有人覆盖或修改了内置的TIMESTAMPDIFF函数,否则这不是问题所在。


SELECT t.wfstarttimestamp
     , t.wfendtimestamp
     , TIMESTAMPDIFF(SECOND,t.wfstarttimestamp,t.wfendtimestamp) AS secs
  FROM (
         SELECT '2019-02-22 10:20:30' + INTERVAL 0 SECOND AS wfstarttimestamp,  '2019-02-22 10:20:45' + INTERVAL 0 SECOND AS wfendtimestamp
         UNION ALL SELECT '2019-02-20 02:03:04' + INTERVAL 0 SECOND, '2019-02-21 02:58:38' + INTERVAL 0 SECOND
       ) t

收益:

wfstarttimestamp     wfendtimestamp         secs  
-------------------  -------------------  ------
2019-02-22 10:20:30  2019-02-22 10:20:45      15
2019-02-20 02:03:04  2019-02-21 02:58:38   89734
© www.soinside.com 2019 - 2024. All rights reserved.