如何返回sql时间字段的平均值

时间:2013-05-06 13:49:56

标签: mysql sql

我有一个带时间字段的SQL数据库。

运行时间字段包含02:06:24, 00:01:12等...

我试图使用;

以HH:MM:SS格式返回此字段的平均值
SELECT AVG( runtime )
FROM `result`

这会返回8312.2342729307我认为是以秒为单位的平均值,但是当转换为分钟时,这是不正确的。

我能够以正确的格式返回MIN和MAX运行时但无法获取AVG,我该怎么做?

无论如何都没有选择中间元素作为中位数平均值?

2 个答案:

答案 0 :(得分:3)

所以,举例说明......

SELECT SEC_TO_TIME((TIME_TO_SEC('02:06:24')+TIME_TO_SEC('00:01:12'))/2) x;
+----------+
| x        |
+----------+
| 01:03:48 |
+----------+

答案 1 :(得分:2)

您无法对DATETIME / TIME

使用AVG()函数

我正在将DATETIME转换为DECIMAL(18,6),这似乎可以产生合理的(+ - 几毫秒)精确结果。

SELECT cast(CAST( AVG( CAST( runtime AS DECIMAL( 18, 6 ) ) ) AS DATETIME ) as time)
FROM dbo.result;