我嘗試過,但無法獲得正確的解決方案。我想要一個列出當年所有周末日期的SQL查詢。如何在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...
。
首先,定義什麼*你*在本週結束日期的意思是 - 不同文化背景的不同定義這些東西。假設你的週末是週六和週日,你需要什麼日期?星期六,星期日,兩者?如果兩者,作爲單列中的兩列,還是分列? –
結束日期是星期六 –