我显示用户1每天的第一个和最后一个日志,
我计算第一次和最后一次的时间差。
所以我想计算时间差的总和
总计
这是我跑的

SELECT id,device,userid,time, MIN(time) as Min, MAX(time) as Max, TIMEDIFF(MAX(time), MIN(time)) as total
FROM records WHERE userid='1' GROUP BY DATE(time)

结果mysql - mysql:计算通过sql创建的列的总和-LMLPHP
所以我想变得像
总和==25:31:47

最佳答案

您可以在Derived table中使用当前查询结果并计算总和。
此外,您需要首先使用TIME_TO_SEC()函数将时间转换为秒,在执行SUM之后,您需要使用SEC_TO_TIME()函数将时间转换回时间。
请尝试以下操作:

SELECT SEC_TO_TIME( SUM( TIME_TO_SEC(derived_t.total) ) ) AS total_time_diff
FROM
(
 SELECT TIMEDIFF(MAX(time), MIN(time)) as total
 FROM records
 WHERE userid='1'
 GROUP BY DATE(time)
) AS derived_t

关于mysql - mysql:计算通过sql创建的列的总和,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52544042/

10-16 04:11