问题:
是否可以对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中对此进行求和,或者我绑定到PHP?
SELECT
MIN(starttime),
MAX(stoptime),
SUM(TIME_TO_SEC(TIMEDIFF(stoptime, starttime))/3600) AS total_hours
FROM mytable WHERE id = 1219
答案 0 :(得分:1)
总结所有差异,您不需要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