Possible Duplicate:
Difference between two dates in MySQL




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

但是,我们有一个数据库,其中有一段时间未进行计算,因此需要计算该时间范围内的DiffinHours。我可以编写脚本来完成此操作,但希望可以通过查询来完成。

最佳答案

定期运行此查询。跟踪上次评估该行的时间,并检查该值是否为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;

关于mysql - 可以计算MySQL查询中两个日期时间字段之间的时差吗? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12092717/

10-11 03:04