毎週水曜日にデータが入力されるテーブルが 1 つあります。したがって、先週の水曜日から最近発生した水曜日までのデータを取得する必要があります。
例: 今日が木曜日(2013 年 6 月 6 日) の場合、 2013年 5 月 29 日 (つまり、前月の最後の水曜日、5 月) から2013年 5 月 6 日(昨日)までのデータをフェッチする必要があります。
私が試してみました
select dateadd(dd,datediff(dd,0,'GetDate()')/7 * 7 + 2,0)
これは 2013 年 5 月 6 日を与え、2013 年 5 月 29 日
select dateadd(wk,-1,datediff(dd,0,'GetDate()')/7 * 7 + 2)
を与えます
このコードでdateadd(dd,datediff(dd,0,'GetDate()')/7 * 7
は、週の最初の曜日(この場合は月曜日) に移動し、+2 を追加することで水曜日の日付になります。
問題コードは月曜日以外は正常に動作します。
例:次の月曜日(つまり、2013 年 6 月 10 日)、
2013 年 5 月 6 日(昨日)から2013年 6 月12日 (次の水曜日)までの結果を返し
ます 。
何か案は?