2012-10-23 31 views
11

Bir tarih sütunu ile 5000 kayıt tablosu var.SQL Server'da tarihler sütununda ortalama değer nasıl bulunur?

Bu tarihlerin ortalamasını nasıl bulurum? Ben AVG(datefield) denedim ama sadece ortalama tarihe istiyorsanız 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

Şamandıra olarak atmayı denedikten sonra AVG kullanıyor muydunuz? işe yarayabilir. –

cevap

19

diyor ki:

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

dikkate istiyorsan süresi:

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

için fiddle bakın Ölçek.

+0

" Aldığım veri türü tarihinden int'ye dönüşüme izin verilmiyor." – Fka

+0

@Fka: Tablo, bu örnekte olduğu gibi "DATETIME" türünü değil, "DATE" türünü kullanıyor. Sanırım ilk önce "DATETIME" olarak değiştirmeniz gerekiyor. –

+0

Bir DateTime2' Türü ile nasıl yapılabilir? Aynı Cast, "datetime2 veri türünden açık bir dönüşüme izin verilmez." hata. – Tom

4
CONVERT(DATETIME, AVG(CONVERT(FLOAT, datefield))) as [AverageDate] 
İlgili konular