【问题标题】:MYsql - Get average time between a start and stop time across many rowsMYsql - 获取多行开始和停止时间之间的平均时间
【发布时间】:2023-03-10 14:58:01
【问题描述】:

我有以下 SQL 和 PHP,它们似乎没有给我正确的数字。 (非常高的数字)

我有很多行带有开始时间和结束时间戳。 我希望得到这两次之间的平均时间。

即:2小时3分46秒。

这就是我所拥有的。

SELECT AVG(tmp.dd) AS timetook
  FROM 
     ( SELECT TIME_TO_SEC(TIMEDIFF(timeclosed, timeanswered)) AS dd 
         FROM logs 
        WHERE timeclosed > DATE_SUB(NOW(), INTERVAL 1 DAY)
     ) tmp;

我这样做是完全错误的吗?这里有什么明显的问题吗?

while($row = $result->fetch_assoc()) {
                                        $timetoclose = $row['timetook'];
                                        $hours = floor($timetoclose / 3600);
                                        $mins = floor($timetoclose / 60 % 60);
                                        $secs = floor($timetoclose % 60);
                                        $timetoclose = sprintf('%02d Hour(s), %02d Minute(s), %02d Second(s)', $hours, $mins, $secs);
                                }

干杯 G

【问题讨论】:

标签: mysql average


【解决方案1】:
SELECT SUM(TIMESTAMPDIFF(minute, start_time, end_time)) / COUNT(*) AS avg_minutes
FROM your_table

试试这个查询。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-25
    • 1970-01-01
    • 1970-01-01
    • 2021-03-14
    • 1970-01-01
    • 2015-05-02
    相关资源
    最近更新 更多