我有一张MySQL表,该表包含课程时间表/课程时间。有些课程需要几天。现在,我想计算每门课程的总课程(小时(。该表被称为cm_courses_times_and_venues。谁能帮我这个 ?我使用PHP,但是如果可以在MySQL语句中处理计算,那将是极好的。预先感谢您的帮助。
course_id | course_start | course_end
182 | 2018-04-09 08:45:00 | 2018-04-09 11:59:59
182 | 2018-04-09 13:00:00 | 2018-04-09 17:45:59
182 | 2018-04-10 08:45:00 | 2018-04-09 11:59:59
182 | 2018-04-10 13:00:00 | 2018-04-09 17:45:59
182 | 2018-04-11 08:45:00 | 2018-04-09 11:59:59
尝试以下查询,我没有测试,但应该起作用:
SELECT SEC_TO_TIME( SUM(TIMESTAMPDIFF(SECOND,course_end,course_start ) ) ) AS totalTime, course_id from tblcourse group by course_id
以防时间超过24小时,我们可以将其施放为字符串:
SELECT cast(SEC_TO_TIME(SUM(TIMESTAMPDIFF(SECOND,course_end,course_start ) ) ) AS CHAR) AS totalTime, course_id from tblcourse group by course_id
sql小提琴:http://sqlfiddle.com/#!9/b3cb79/2/2/0
如果您不希望每门课程的总数:
SELECT cast(SEC_TO_TIME(TIMESTAMPDIFF(SECOND,course_end,course_start ) ) AS CHAR) AS totalTime, course_id from tblcourse
时迪夫应该做工作
SELECT TIMEDIFF("2018-04-09 11:59:59","2018-04-09 08:45:00" );