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, 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),只需使用timestampdiffsum ,例如

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/

相关文章:

php - Print_r 不返回任何东西; var_dump 显示 NULL

php - 在 PHP 中使用 PDO 将 HTML 表单中的数据插入 MySQL

PHP: $row undefined variable

MySQL函数选择与查询中顺序相同的单词记录?

php - 帮助 PHP array_filter 函数

php - 除非更改名称,否则无法读取 Laravel CSS 文件

php - 将ajax数据发布到php然后获取数据不起作用

php - ZIP 文件下载 php readfile() 错误

php - MySqli 添加多行到数据库

mysql - 如何在MySQL数据库中存储货币符号?