我有一個帶有時間字段的SQL數據庫。如何返回一個SQL時間字段的平均值
的運行時間字段包含02:06:24, 00:01:12
等等
我試圖返回本場的平均在HH:MM:SS使用格式;
SELECT AVG(runtime)
FROM `result`
這將返回8312.2342729307
我認爲是但是當轉換成分,這是不正確的秒的平均值。
我能夠以正確的格式返回MIN和MAX運行時,但無法獲得AVG,我該怎麼做?
失敗,有無論如何選擇中間元素作爲中位數平均使用?
我有一個帶有時間字段的SQL數據庫。如何返回一個SQL時間字段的平均值
的運行時間字段包含02:06:24, 00:01:12
等等
我試圖返回本場的平均在HH:MM:SS使用格式;
SELECT AVG(runtime)
FROM `result`
這將返回8312.2342729307
我認爲是但是當轉換成分,這是不正確的秒的平均值。
我能夠以正確的格式返回MIN和MAX運行時,但無法獲得AVG,我該怎麼做?
失敗,有無論如何選擇中間元素作爲中位數平均使用?
不能使用AVG()函數針對DATETIME/TIME
我鑄造DATETIME到DECIMAL(18,6),這似乎得到一個合理的(+ - 幾毫秒)精確的結果。
SELECT cast(CAST(AVG(CAST(runtime AS DECIMAL(18, 6))) AS DATETIME) as time)
FROM dbo.result;
它返回一行但是這是NULL – 2013-05-06 14:21:27
快速測試表明'AVG()'將'01:30:00'視爲'13000',即使在嚴格模式下: - ?如果有人能找到說明他應該在這裏發佈的手冊頁。 – 2013-05-06 14:52:56
因此,通過圖示的方式...
SELECT SEC_TO_TIME((TIME_TO_SEC('02:06:24')+TIME_TO_SEC('00:01:12'))/2) x;
+----------+
| x |
+----------+
| 01:03:48 |
+----------+
SELECT SEC_TO_TIME((TIME_TO_SEC('22:06:24')+ TIME_TO_SEC('00:01:12'))/ 2)x; 給我11:03:48.0000 ...這是錯誤的結果。正確的結果應該是23:XX ... – 2017-10-31 11:31:41
@ApoorvaShah Your's與最初提出的問題不同。另外XX不是有效的時間。 – Strawberry 2017-10-31 12:02:16
是XX表示第二個......我還沒有計算確切的平均值。 – 2017-10-31 12:17:15
目前還不清楚您所使用的數據庫:MySQL的唯一?還是另一個? – Jocelyn 2013-05-06 14:04:19
我不確定老實說,它的託管在http://www.numyspace.co.uk/phpmyadmin – 2013-05-06 14:18:41
你認爲兩點和五點的平均值應該是多少?兩點和五點的*總和*應該是多少? – 2013-05-06 14:28:36