これは過去30日間に数回回答されたようです。しかし、どうやら私が必要なものではないようです。
たとえば、今日が2012年7月10日の場合、6月のすべてのデータを取得することを検討しています。毎月の開始から数日後にこのクエリを実行する必要があります
これは過去30日間に数回回答されたようです。しかし、どうやら私が必要なものではないようです。
たとえば、今日が2012年7月10日の場合、6月のすべてのデータを取得することを検討しています。毎月の開始から数日後にこのクエリを実行する必要があります
これを行うためのより良い方法は確かにありますが、1つの方法は次のとおりです。
DECLARE @Date DATETIME
SET @Date = '20120710'
SELECT *
FROM YourTable
WHERE YourDateColumn >= CONVERT(VARCHAR(6),DATEADD(MONTH,-1,@Date),112)+'01'
AND YourDateColumn < CONVERT(VARCHAR(6),@Date,112)+'01')
-- 前月の初日
select DateAdd(Month, DateDiff(Month, 0, GetDate())-1,0)
-- 前月の最終日
Select DateAdd(day,-1,DateAdd(Month,1,DateAdd(Month,
DateDiff(Month, 0,GETDATE())-1,0)))
GETDATE() を日付列に置き換えてください
ああ、その場合、次のようなものが必要です。
SELECT *
FROM
reporting_table_name_goes_here
WHERE
DATEPART(month, YourDateColumn) = DATEPART(month, DATEADD(month, -1, getdate()))
AND DATEPART(year, YourDateColumn) = DATEPART(year, DATEADD(month, -1, getdate()))
詳細については、 MSDNを参照してください。