0

可能重复:
MySQL 中两个日期之间的差异

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

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

4

1 回答 1

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;
于 2012-08-23T13:40:39.860 回答