日付列を持つ 5000 レコードのテーブルがあります。
これらの日付の平均を見つけるにはどうすればよいですか。試してみましAVG(datefield)
たが、それは言うOperand data type datetime is invalid for avg operator
日付列を持つ 5000 レコードのテーブルがあります。
これらの日付の平均を見つけるにはどうすればよいですか。試してみましAVG(datefield)
たが、それは言うOperand data type datetime is invalid for avg operator
日付のみを平均化する場合:
SELECT CAST(AVG(CAST(datefield AS INT)) AS DATETIME) FROM dates;
そして、時間を考慮したい場合:
SELECT CAST(AVG(CAST(datefield AS FLOAT)) AS DATETIME) FROM dates;
テストするにはフィドルを参照してください。
CONVERT(DATETIME, AVG(CONVERT(FLOAT, datefield))) as [AverageDate]
私はこれを作ったので、将来他の人に役立つことを願っています! SQL は、これを簡単にしないことに悪臭を放っています。
Declare @Day as int;
Declare @Month as int;
Declare @Year as int;
Declare @Date as varchar(50);
SET @Day = (SELECT AVG(DAY(Column_name)) FROM Table_Name)
SET @Month = (SELECT AVG(MONTH(Column_name)) FROM Table_Name)
SET @Year = (SELECT AVG(YEAR(Column_name)) FROM Table_Name)
SET @Date = CAST(@Day as varchar) +'-' + CAST(@Month as varchar) + '-' + CAST(@Year as varchar);
SELECT CONVERT(datetime2,@Date,103)