首页 > 解决方案 > 如何计算时钟重置时的持续时间?

问题描述

我想做的很简单,我有一个充满 start_times 和 finish_times 的 df。除 2 行外,所有开始和结束都在同一天开始时间为 24 小时格式

我想计算计算出的持续时间的最小值、最大值和平均值。问题出在 230 行中,其中 2 行已重置。例如,一个开始时间是 2020-10-14 23:37:26,其相应的完成时间是 2020-10-15 00:19:47,我还有另一排考试开始 1 天并完成下一个

我将值存储为 DATETIME 如何将其转换为所需的输出?

SELECT AVG(SEC_TO_TIME(TIMESTAMPDIFF(MINUTE, Start_Time, Finish_Time))) AS 
      Avg_Exam_Duration, 
      MIN(SEC_TO_TIME(TIMESTAMPDIFF(MINUTE, Start_Time, Finish_Time))) AS 
      Min_Exam_Duration,
      MAX(SEC_TO_TIME(TIMESTAMPDIFF(MINUTE, Start_Time, Finish_Time))) AS 
      Max_Exam_Duration,
      Room_ID FROM exam
      GROUP BY Room_ID;

所需的输出将正确计算时间之间的持续时间(经过的时间)的最大值、最小值和平均值(以分钟为单位)

电流输出

标签: mysqldatetime

解决方案


代替:

TIMEDIFF(Finish_Time, Start_Time)

利用:

SEC_TO_TIME(TIMESTAMPDIFF(SECOND, Start_Time, Finish_Time))

(注意参数的更改顺序。)


推荐阅读