我有一个带有时间字段的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