MYSQL时差

时间:2017-03-21 16:03:52

标签: mysql

我正在尝试计算两个时间字段之间的时间差异。由于这些字段只是没有日期的时间,因此我无法使用timestampdiff,因此我使用timediff()subtime()。唯一的问题是,当第二次小于第一次时,它会为我返回负timediff。我知道它将时间视为同一天,但有没有办法获得一个总是计算时间的行为?例如,我有23:00:00和07:00:00。 timediff('07:00:00','23:00:00')将返回负值,因为23:00大于07:00,但我希望获得8小时的回报。我有什么方法可以做到吗?

1 个答案:

答案 0 :(得分:1)

您可以使用if语句实现:

select if(dateA > dateB,
          timediff(dateA, dateB),
          addtime(timediff(dateA, dateB), '24:00:00.000000'))

这样,如果第一个日期小于第二个日期,则会增加24小时的差异。