毎月最後の水曜日に日付の範囲内で作業する必要があります。毎月最終水曜日
私は最後の水曜日を計算するコードを持っていますが、私のcteは月を正しく歩いていないようです。
現在のコード:
2016年1月27日:
declare @S_Date date declare @E_Date date set @S_Date='2016-01-31' --eomonth of first month set @E_Date='2016-06-15' --ides of last month (can actually be any day that is --not equal to or after the last Wednesday of the month) ;with LW(D_Date) as ( select dateadd(dd,datediff(dd,0,@S_Date)/7*7+2,0) union all select dateadd(dd,datediff(dd,0,eomonth(D_Date,1))/7*7+2,0) from LW where D_date<@E_Date ) select d_date from LW
に
eomonth
select dateadd(dd,datediff(dd,0,dateadd(mm,1,D_Date))/7*7+2,0)
を変更することは
期待される結果のいずれかを動作するようには思えません
2016年2月24日
2016年3月30日
2016年4月27日
2016年5月25日
2016年6月29日
あなたが最後の水曜日の計算コードを持っているとしたら、どこにありますか? 'WeekDay'を何も使わずにどの日がWedsかを計算する方法は? –
ちょっと脇に... ** ids **は日付のために使用されました。なぜなら、その日付を使用しなければならない理由があるからです。 – SeanC
@ TabAlleman、先週の水曜日のコードは別のサイトからのもので、月の最後の日を使用する必要がありました。これがEOMONTHを使用し、最初の日付を1月の最終日に設定した理由です。 @@ DATEFIRSTはデフォルトの米国設定、7または日曜日とみなすことができます – SeanC