问题:
是否可以对 MySQL 中的所有行进行分组并对小时数求和?
Starttime - type:datetime, Stoptime - type:datetime
数据
Starttime, stoptime
2016-10-25 09:00:00, 2016-10-29 17:00:00
2016-11-26 09:00:00, 2016-11-26 17:00:00
2016-11-30 09:00:00, 2016-11-30 17:00:00
2017-01-28 09:00:00, 2017-01-28 17:45:00
下面的代码汇总了 2016-10-25 和 2017-01-28 之间的所有时间。我需要它对每一行的所有时间求和,然后将所有行加在一起。是否可以在 MySQl 中对此求和,或者我是否绑定(bind)到 PHP?
SELECT
MIN(starttime),
MAX(stoptime),
SUM(TIME_TO_SEC(TIMEDIFF(stoptime, starttime))/3600) AS total_hours
FROM mytable WHERE id = 1219
最佳答案
要总结所有差异,您不需要min(starttime)
或max(stoptime)
,只需使用timestampdiff
的sum
,例如
select sum(timestampdiff(hour, starttime, stoptime))
from mytable
如果您想要小数小时,请保持 time_to_sec(...)/3600
与您的问题相同
select sum(time_to_sec(timediff(stoptime, starttime)) / 3600)
from mytable
另见 sqlfiddle
关于php - MySQL 行中的总日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42186310/