可以计算MySQL查询中两个日期时间字段之间的时差吗?

时间:2012-08-23 13:28:55

标签: mysql

  

可能重复:
  Difference between two dates in MySQL

我在表格中有三个字段。 Date1,Date2和DiffinHours。在我们的PHP代码中,当设置Date2时,我们计算Date2和Date1之间的小时差异,然后将DiffinHours设置为该值。

但是,我们有一个数据库,在一段时间内没有进行计算,我们需要计算该时间范围内的DiffinHours。我可以写一个脚本来做,但我希望可以通过查询来完成。

1 个答案:

答案 0 :(得分:1)

定期运行此查询。跟踪上次评估行的时间,并检查该值是否为0(意味着该行的timediff尚未计算):

UPDATE database SET DiffInHours = HOUR(TIMEDIFF(date2, date1)), lastEval = NOW() WHERE date2 != 0 AND lastEval = 0;

或许你的意思是回填数据库的一次性查询,这里的查询只是在Diffinhours为零时运行:

UPDATE database SET DiffInHours = HOUR(TIMEDIFF(date2, date1)) WHERE date2 != 0 AND DiffInHours = 0;