Sql server 获取给定年份中所有星期六的日期-sql server

Sql server 获取给定年份中所有星期六的日期-sql server,sql-server,tsql,sql-server-2008,Sql Server,Tsql,Sql Server 2008,我需要一份给定年份中所有周六日期的列表 我看过一篇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

我需要一份给定年份中所有周六日期的列表

我看过一篇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年的,如)

非常感谢。
-汤姆

在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
声明@d datetime 选择@d='20100101'--'20090101'如果您想要2009等

从master..spt\u值中选择dateadd(dd,number,@d) 其中type='p'
和datename(weekday,(dateadd(dd,number,@d)))在('Saturday','Tuesday'/*指定日期名*/)

@sqlmeanse这是每隔一个星期六显示一次,希望它能帮助别人,因为我正在尝试使用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; 

哇!这甚至适用于2018年的周一!谢谢;)