2016-09-06 9 views
1

このクエリは現在6か月のデータを取り戻しています。したがって、今日実行すると、2011年1月3日から2016年6月9日までのデータが取得されます。私が望むのは、データが31/08/2016に終了することです。6ヶ月間のローリングデータ

そして、翌月は01/04/2016から30/09/2016まで続きます。

感謝

select i.Date 
from table as i 
where i.Date >= Dateadd(Month, Datediff(Month, 0, DATEADD(m, -6, current_timestamp)), 0) 
order by i.Date desc 
+0

使用しているdbmsにタグを付けます。 (dateaddとdatediffは製品固有の機能です) – jarlh

+0

[BETWEEN](https://msdn.microsoft.com/en-us/library/ms187922.aspx) –

答えて

3

試してみてください。

select i.Date 
from table as i 
where i.Date between 
    Dateadd(Month, Datediff(Month, 0, DATEADD(m, -6, current_timestamp)), 0) 
    AND DATEADD(MONTH, DATEDIFF(MONTH, -1, GETDATE())-1, 0) 
order by i.Date desc 
+0

、ありがとう – whitz11

0

[日付]日時であると仮定すると。 時間/分/秒は関係ありません。

select i.[Date] 
from table as i 
where convert(date,i.[Date]) between 
      dateadd(m, -6, dateadd(d, -datepart(d,GetDate())+1, convert(date,GetDate()))) AND 
      dateadd(d, -datepart(d,GetDate()), convert(date,GetDate())) 
order by i.[Date] desc 
関連する問題