我有一个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
答案 0 :(得分:0)
TIMEDIFF应该开展工作
set_page_load_timeout()
答案 1 :(得分:0)
尝试下面的查询,我还没有测试但它应该可以工作:
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/0
如果你不想要每门课程的总时间:
SELECT cast(SEC_TO_TIME(TIMESTAMPDIFF(SECOND,course_end,course_start ) ) AS CHAR) AS totalTime, course_id from tblcourse