Mam tabelę 5000 rekordów z kolumną daty.Jak znaleźć średnią wartość w kolumnie dat w SQL Server
Jak znaleźć średnią z tych dat. Próbowałem AVG(datefield)
, ale mówi Operand data type datetime is invalid for avg operator
Mam tabelę 5000 rekordów z kolumną daty.Jak znaleźć średnią wartość w kolumnie dat w SQL Server
Jak znaleźć średnią z tych dat. Próbowałem AVG(datefield)
, ale mówi Operand data type datetime is invalid for avg operator
Jeśli chcesz średnim terminie tylko:
SELECT CAST(AVG(CAST(datefield AS INT)) AS DATETIME) FROM dates;
A jeśli rozważyć czas:
SELECT CAST(AVG(CAST(datefield AS FLOAT)) AS DATETIME) FROM dates;
Zobacz fiddle do test.
Otrzymuję ' Jawna konwersja z daty typu danych na int jest niedozwolona." – Fka
@Fka: Twoja tabela używa typu 'DATA', a nie' DATETIME', jak w tym przykładzie. Przypuszczam, że najpierw musisz przekonwertować go na "DATETIME". –
Jak można tego dokonać przy użyciu typu 'DateTime2'? Ten sam odlew generuje "jawną konwersję z typu danych datetime2, aby dane zmiennopozycyjne były niedozwolone". błąd. – Tom
CONVERT(DATETIME, AVG(CONVERT(FLOAT, datefield))) as [AverageDate]
http://www.bennadel.com/blog/175-Ask-Ben-Averaging-Date-Time-Stamps-In-SQL.htm – Dan
Czy próbowałeś rzucić go jako float, a następnie użyć AVG? to może działać. –