如何在SQL Server中获取第2和第4个星期六日期的列表?

a3.*_*ity 0 sql sql-server date

我几乎是编写SQL查询的新手.在SQL Server的上下文中,如何获取2016年的第2和第4个星期六日期列表?

小智 6

完成作为派生表只是为了显示逻辑,但如果您愿意,可以减少:

select *
from (
    select d2016, 
           datename( weekday, d2016 ) as wkdy,
           row_number( ) over ( partition by datepart( month, d2016 ), datename( weekday, d2016 ) order by d2016 ) as rn_dy_mth
    from (
        select dateadd( day, rn, cast( '2016-01-01' as date ) ) as d2016
        from (
            select row_number() over( order by object_id ) - 1 as rn
            from sys.columns
            ) as rn
        ) as dy
    ) as dy_mth
where rn_dy_mth in ( 2, 4 )
  and wkdy = 'Saturday' 
order by d2016
Run Code Online (Sandbox Code Playgroud)