2010-10-01 56 views
10

Tôi cần có danh sách tất cả các ngày Thứ Bảy trong một năm nhất định.lấy ngày của tất cả các ngày thứ bảy trong một năm nhất định - máy chủ sql

Tôi đã nhìn thấy một bài đăng oracle chống lại một bảng có "bảng lịch tài chính" nhưng tôi đã không thể thành công trong việc chuyển đổi nó hay tôi có một bảng có chứa một tập hợp các ngày tôi muốn điều tra.

SELECT DATE DATES,TO_CHAR(DATE,'DAY') DAYS FROM FISCAL_CALENDAR 
WHERE DATE_YEAR = 2009 AND 
DATE BETWEEN TRUNC(SYSDATE,'YEAR') AND 
ADD_MONTHS(TRUNC(SYSDATE,'YEAR'),12) -1 AND 
TRIM(TO_CHAR(DATE,'DAY')) = 'SUNDAY' 

là Oracle (đó là vì chủ nhật và 2009 ví dụ)

Phần lớn nhờ. -Tom

Trả lời

15

cho năm 2010 bạn có thể làm điều này

declare @d datetime 
select @d = '20100101' --'20090101' if you want 2009 etc etc 

select dateadd(dd,number,@d) from master..spt_values 
where type = 'p' 
and year(dateadd(dd,number,@d))=year(@d) 
and DATEPART(dw,dateadd(dd,number,@d)) = 7 
+0

thank you very much !!! – TEEKAY

+0

Vẫn hữu ích trong năm 2015. Cảm ơn bạn! – FumblesWithCode

+0

Thật tuyệt vời! điều này thậm chí hoạt động cho các ngày Thứ Hai trong năm 2018! Cảm ơn bạn ;) – Edward

Các vấn đề liên quan