2013-05-06 2 views
7

시간 필드가있는 SQL 데이터베이스가 있습니다.SQL 시간 필드 평균을 반환하는 방법

런타임 시간 필드에 포함 02:06:24, 00:01:12 등 ...

나는 HH에서이 분야의 평균을 반환하는 것을 시도하고있다 : MM : 사용 SS 형식;

SELECT AVG(runtime) 
FROM `result` 

이 내가이 잘못되었습니다 분으로 변환 그러나 초 평균이라고 생각 8312.2342729307를 반환합니다.

올바른 형식으로 MIN 및 MAX 런타임을 반환 할 수 있지만 AVG를 가져올 수 없습니다. 어떻게해야합니까?

중간 평균으로 사용할 중간 요소를 선택하지 않아도됩니까? (- 밀리 초 +) 정확한 결과

+0

... 그림의 방법으로 당신이 사용하는 데이터베이스에있는 명확하지 않다? 아니면 또 다른? – Jocelyn

+0

정직하게 확신 할 수없는 Im, http://www.numyspace.co.uk/phpmyadmin에서 호스팅 됨 –

+0

2시와 5시의 평균은 어떻습니까? 2시와 5시의 합계는 무엇이되어야합니까? –

답변

2

당신은 내가 DECIMAL에 DATETIME 캐스팅 오전 DATETIME/시간

에 대해 AVG() 함수를 사용할 수 없습니다 (18, 6) 합리적를 ​​산출하기 위해 나타나는. 만 MySQL이 :

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

그러나 리턴되는 행은 NULL입니다. –

+0

빠른 테스트는 엄격한 모드에서도'AVG()'는'01 : 30 : 00'을'13000'으로 취급합니다. 누군가가 여기에 게시해야한다고 설명하는 매뉴얼 페이지를 찾을 수 있다면. –

3

그래서,

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

SELECT SEC_TO_TIME ((TIME_TO_SEC ('22 : 06 : 24 ') + TIME_TO_SEC ('00 : 01 : 12'))/2) x; 11 : 03 : 48.0000 ... 나에게 어떤 결과가 나옵니까? 올바른 결과는 23이어야합니다 : XX ... –

+0

@ApoorvaShah 귀하의 질문은 원래 질문과 다른 것입니다. 또한 XX는 유효한 시간이 아닙니다. – Strawberry

+0

예 xx는 몇 초를 의미합니다 ... 나는 정확한 평균을 계산하지 않았습니다. –

관련 문제