Tôi đã thử nhưng không thể có được giải pháp phù hợp. Tôi muốn một truy vấn SQL liệt kê tất cả các ngày cuối tuần của năm hiện tại.Làm thế nào để có được tất cả các ngày cuối tuần của năm hiện tại trong SQL?
tôi đã cố gắng truy vấn SQL này:
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
đầu ra của nó là như thế này:
Week End date
52 2012-01-14
51 2012-01-21
50 2012-01-28
49 2012-02-04
Tôi muốn ngày để bắt đầu từ đầu - vì vậy, bên trên là mất tích một ngày cuối tuần, mà là 2012-07-01
. Ngoài ra, tôi muốn số tuần hiển thị là 1, 2, 3...
thay vì 52, 51...
.
Thứ nhất, xác định những gì bạn * * ý nghĩa của ngày kết thúc tuần - các nền văn hóa khác nhau xác định những điều khác nhau. Giả sử bạn có nghĩa là một ngày cuối tuần là thứ Bảy và Chủ Nhật, bạn cần ngày nào? Thứ bảy, chủ nhật, cả hai? Nếu cả hai, là hai cột trong một hàng hoặc là các hàng riêng biệt? –
Ngày kết thúc là Thứ Bảy –