我正在寻找一些关于如何在 mySQL 中按日期分组时以小时为单位完成日期差异的想法。例如,以下日期的正常 DateDiff (Hours) 方法将产生 49 小时,但我感兴趣的是哪些天占总 49 小时的份额:
Date 1: 2016-06-12 12:00
Date 2: 2016-06-14 13:00
结果:
开始 结束 差异
2016-06-12 12:00 2016-06-13 00:00 12 小时
2016-06-13 00:00 2016-06-14 00:00 24 小时
2016-06-14 00:00 2016-06-14 13:00 13 小时
谢谢!
最佳答案
假设您有一个日历表并且开始日期和结束日期在变量中,那么这样的逻辑应该可以满足您的要求:
select c.date, c.date + interval 1 day,
timstampdiff(hour,
greatest(c.date, $start),
least(c.date + interval 1 day, $end)
)
from calendar c
where c.date >= date($start) and c.date < date($end) + interval 1 day
关于mySQL DateDiff 小时按日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37780918/