ここに2つの異なる方法があります。どちらも、週が月曜日に始まると想定しています
週全体にしたい場合は、それらが開始する月に属します。つまり、土曜日2012-09-01と日曜日2012-09-02は第4週、月曜日2012-09-03は第1週です。
declare @date datetime = '2012-09-01'
select datepart(day, datediff(day, 0, @date)/7 * 7)/7 + 1
週が月の変更でカットされ、土曜日の2012-09-01と日曜日の2012-09-02が第1週で、月曜日の2012-09-03が第2週である場合は、次を使用してください。
declare @date datetime = '2012-09-01'
select datediff(week, dateadd(week,
datediff(day,0,dateadd(month,
datediff(month,0,@date),0))/7, 0),@date-1) + 1
ジェラルドからメールを受け取りました。彼は2番目の方法の欠陥を指摘しました。これは今すぐ修正する必要があります