0

SQL Server のテーブルから過去 3 か月の日付をすべて選択したいと考えています。

データは次のようになります。

Sunday 20-05-2012
Sunday 27-05-2012
Sunday 10-06-2012
Sunday 24-06-2012
Sunday 08-07-2012
Sunday 22-07-2012
Sunday 12-08-2012
Sunday 19-08-2012
Sunday 09-09-2012
Sunday 16-09-2012
4

2 に答える 2

4

日付列を曜日とともにvarcharとして保存する-悪い考えです。where句で使用するには、フィールドを常に変換する必要があるため、より高速なクエリを作成することはできません。また、クエリはdate_columnのインデックスを使用できず、各クエリはスキャンインデックスを使用します。

日時列の場合、クエリは次のようになります。

select date_column
  from table_name
 where date_column between dateadd(m, -3, getdate()) and getdate()
于 2012-09-28T11:34:25.617 に答える
1

このクエリを使用してみてください:

select date_column from table_name
where datepart(m,date_column) > datepart(m,getdate())-3 and datepart(yy,date_column) >= datepart(yy,getdate())
于 2012-09-28T11:17:17.353 に答える