带有扭曲的mysql时差计算

时间:2013-02-24 22:03:00

标签: mysql math

从mysql结果中,我得到类似这样的内容

last_updated_rta    gmt_timestamp        last_record_update       diff
  02:14:58       2013-02-24 02:15:37    2013-02-23 19:15:37      00:00:39
  01:01:00       2013-02-24 01:30:34    2013-02-23 18:30:34      00:29:34
  23:59:59       2013-02-24 00:29:33    2013-02-23 17:29:33     -23:30:26
  00:00:00       2013-02-24 00:29:33    2013-02-23 17:29:33      00:29:33

'diff'列是timediff计算:

         TIMEDIFF(TIME(gmt_timestamp),TIME(last_updated_rta)) AS diff

这是问题所在。请注意“diff”列中的“-23:30:26”值。我不应该有负面的。仅当last_updated_rta时间在午夜(00:00:00)之前并且gmt_timestamp日期是第二天时才会发生这种情况。我认为,部分问题是我没有获得“last_updated_rta”列的日期值。我只有时间。

如何更正此公式以解决此问题,以便我得不到负值?

提前致谢,

  • d -

2 个答案:

答案 0 :(得分:1)

假设last_updated_rta总是早于而不是gmt_timestamp,您可以假设last_updated_rta的日期与gmt_timestamp相同。如果last_updated_rta碰巧以后(差异为负),那么您知道其日期应该是前一天

答案 1 :(得分:0)

如果您知道您将不会得到任何负值,那么请测试结果是否为负数,如果是,则将差值加1天。