Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL行中的日期时间总和_Php_Mysql - Fatal编程技术网

Php MySQL行中的日期时间总和

Php MySQL行中的日期时间总和,php,mysql,Php,Mysql,问题: 是否可以将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, 20

问题:

是否可以将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

要总结所有差异,您不需要
min(开始时间)
max(停止时间)
,只需使用的
sum
,例如

如果您想要分数小时,请将
时间保持在秒(…)/3600
如您的问题所示

select sum(time_to_sec(timediff(stoptime, starttime)) / 3600)
from mytable

另见

似乎正确。。问题是什么?问题是我想(如果可能的话)总结一下MySQL中的所有时间。先是一行一行,然后是所有的行。我可以通过使用MySQL和PHP来实现这一点。但是我想知道,仅仅使用MySQL是否可以更有效地实现这一点?如果您需要所有行的总小时数,为什么有
where id=1219
子句?如果
id=1219
仅对应一行,那么仅1行/列值的
min
max
的含义是什么?
select sum(time_to_sec(timediff(stoptime, starttime)) / 3600)
from mytable