我有这个问题:
SELECT sum(TIMEDIFF(`time_out`, `time_in`)) as `total` FROM `user_log` WHERE `uid` = '1' AND `time_out` <> '0000-00-00 00:00:00'
然后我计算秒到小时:
$total_difference = (($difference->total) / 60 / 60);
但这显示了 22,352125 小时,这是不可能的......
我一直在测试,如果我不使用 SUM,我会显示 2 条记录:
SELECT TIMEDIFF(`time_out`, `time_in`) as `total` FROM `user_log` WHERE `uid` = '1' AND `time_out` <> '0000-00-00 00:00:00'
- 08:00:02
- 00:00:11
这个结果远低于我在查询中使用 SUM 时得到的 22 小时。有什么帮助吗?我不知道我做错了什么。
谢谢!
最佳答案
可以调整查询使用TIME_TO_SEC - 这将转换 TIMEDIFF 的返回值到一个数字秒数,可以合理地求和
调整后的查询
SELECT SUM(TIME_TO_SEC(TIMEDIFF(time_out, time_in))) as total
FROM user_log
WHERE uid = '1' AND time_out <> '0000-00-00 00:00:00'
;
关于php - SUM 不显示正确的总和 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30125807/