我需要获得某一年中所有星期六日期的清单。
我看过一个oracle帖子违反了一个有“财政日历表”的表,但是我无法成功转换它,也没有一个包含我想要调查的日期的表
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'
是甲骨文(例如,周日和2009年)
非常感谢。 - 汤姆
答案 0 :(得分:17)
2010年你可以做到这一点
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
答案 1 :(得分:0)
声明@d datetime 选择@d =' 20100101' - ' 20090101'如果你想要2009等等
从master..spt_values中选择dateadd(dd,number,@ d) 其中type =' p' 和日期名称(工作日,(dateadd(dd,number,@ d)))('星期六','星期二' / *指定日期名称* /)
答案 2 :(得分:0)
@SQLMenace 这是每隔一个星期六展示,希望它对某人有所帮助,因为我正在尝试使用 SQL 创建一个轮班日历。从一年的第一个星期六开始,连续 3 天、2 天和 2 天休息。
declare @d datetime
select @d = '20210101' --'20090101' if you want 2009 etc etc
select dateadd(dd,number,@d) as "Day" from master..spt_values
where type = 'p'
and year(dateadd(dd,number,@d))=year(@d)
and DATEPART(dw,dateadd(dd,number,@d)) = 7 and DATEPART(WK,DATEADD(dd,number,@d)) % 2 = 0;