我在表格中有三个字段。 Date1,Date2和DiffinHours。在我们的PHP代码中,当设置Date2时,我们计算Date2和Date1之间的小时差异,然后将DiffinHours设置为该值。
但是,我们有一个数据库,在一段时间内没有进行计算,我们需要计算该时间范围内的DiffinHours。我可以写一个脚本来做,但我希望可以通过查询来完成。
答案 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;