2012-10-23 2 views
11

날짜 열이있는 5000 개의 테이블이 있습니다.SQL Server에서 날짜 열의 평균 값을 찾는 방법

어떻게 해당 날짜의 평균을 찾을 수 있습니까? 나는 AVG(datefield)을 시도했다, 그러나 당신은 평균 날짜하려면 Operand data type datetime is invalid for avg operator

+0

http://www.bennadel.com/blog/175-Ask-Ben-Averaging-Date-Time-Stamps-In-SQL.htm – Dan

+0

플로트로 캐스팅하고 AVG를 사용하려고 했습니까? 그것은 작동 할지도 모른다. –

답변

19

을 말한다

SELECT CAST(AVG(CAST(datefield AS INT)) AS DATETIME) FROM dates; 

을 고려해야 싶다면 시간 :

SELECT CAST(AVG(CAST(datefield AS FLOAT)) AS DATETIME) FROM dates; 

fiddle을 참조하십시오 테스트.

+0

' 데이터 형식 날짜에서 int 로의 명시 적 변환이 허용되지 않습니다. ' – Fka

+0

@Fka : 테이블이이 예제에서와 같이'DATETIME '이 아닌'DATE '형식을 사용하고 있습니다. 먼저 'DATETIME'으로 변환해야한다고 가정합니다. –

+0

'DateTime2' 타입으로 어떻게 할 수 있습니까? 동일한 캐스트는 "데이터 유형 datetime2에서 float 로의 명시적인 변환이 허용되지 않습니다."를 생성합니다. 오류. – Tom

4
CONVERT(DATETIME, AVG(CONVERT(FLOAT, datefield))) as [AverageDate] 
관련 문제