我有一个 MySQL 表,其中包含两个日期时间列:
CREATE TABLE test (job_id int, dateCol1 DATETIME, datecol2 DATETIME);
它包含一系列表示作业开始和结束时间的数据。我需要知道这些工作的平均持续时间(以分钟为单位),但到目前为止还看不到如何实现。
我尝试了各种方法:
SELECT job_id, AVG(TIMEDIFF(datecol2,datecol1)) FROM test GROUP BY job_id;
SELECT job_id, SEC_TO_TIME(AVG(TIMEDIFF(datecol2,datecol1))) FROM test GROUP BY job_id;
SELECT job_id, SEC_TO_TIME(AVG(TIME_TO_SEC(datecol2)-TIME_TO_SEC(datecol1))) FROM test GROUP BY job_id;
SELECT job_id, SEC_TO_TIME(AVG(TIME_TO_SEC(FROM_UNIXTIME(UNIX_TIMESTAMP(datecol2)-UNIX_TIMESTAMP(datecol1))))) FROM test GROUP BY job_id;;
我将它与我在 Excel 中打印并平均的所有作业列表进行比较,但到目前为止我得到了不同的结果。
另外,我还需要排除持续时间大于 1 小时的任何内容。
我敢肯定我只是把它复杂化了,如果有人能告诉我它会受到赞赏的方式,否则我最终不得不为每个 jobid 打印出一个列表,并在 excel 中手动平均它们。