1

逆の質問は - 日付が月の最後の週であるかどうかを判断する方法は?

たとえば、GetDate() を使用して、今日の日付または特定の日付がその月の最終週であることをどのように知ることができますか。MSSQL の週番号は 4 または 5 です。

毎月最終土曜日の日付を取得したいとします。 しかし、2013 年 12 月の SQL 週番号 5 (2013 年 12 月の最終週) には金曜日がありません。12 月の最終週は 31 日 (火) で終わります。そのため、12 月を飛ばして 2014 年 1 月に進む必要がありますが、先週も金曜日の 31 日に終了します。だから、動き続けてください....

では、指定された日付または今日の日付から先週の X 日の日付を取得する方法は?

ありがとう。

4

1 に答える 1

1

以下のコードを使用できます。これは、月曜日から始まり、日曜日で終わる週に基づいています。

declare @date as date = '20131230' -- this is the date you check

declare @lastdayofmonth as date = DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,@date)+1,0))
declare @lastweekstart as date = dateadd(d, -datepart(dw, @lastdayofmonth)+2, @lastdayofmonth)
if datepart(m, @lastdayofmonth) <> datepart(m, @lastweekstart)
    set @lastweekstart = dateadd(d, -7, @lastweekstart)

if @date >= @lastweekstart and @date <= @lastdayofmonth
    print 'Within last week'
else
    print 'Not within last week'
于 2013-12-03T11:39:02.677 に答える