私は試しましたが、正しい解決策を得ることができませんでした。今年のすべての週末の日付を一覧表示するSQLクエリが必要です。
私はこのSQLクエリを試しました:
WITH hier(num, lvl) AS (
SELECT 0, 1
UNION ALL
SELECT 100, 1
UNION ALL
SELECT num + 1, lvl + 1
FROM hier
WHERE lvl < 100
)
SELECT lvl [Week],
convert(date,DATEADD(dw, -DATEPART(dw, DATEADD(wk,DATEDIFF(wk,0,'12/31/'+convert(nvarchar,YEAR(getdate()))), 0)+6 ),
DATEADD(wk, DATEDIFF(wk,0,'12/31/'+convert(nvarchar,YEAR(getdate()))), 0)+6 ) - num * 7,101) [End Date]
FROM hier a
where num < 52
ORDER BY [End Date] asc
その出力は次のようになります。
Week End date
52 2012-01-14
51 2012-01-21
50 2012-01-28
49 2012-02-04
日付を最初から始めたいので、上記はある週末、つまり。が欠落してい2012-07-01
ます。1, 2, 3...
また、週番号をの代わりに表示したい52, 51...
。