sqlserver 获取指定时间内的所有周

declare  @sDate datetime = '2019-01-01'
        ,@eDate datetime= '2019-12-31'

select d2.weekRange,d2.FirstDay,d2.EndDay from 
(
    select datepart(WEEK,d.dates) weekRange
    ,dateadd(Day,1-(DATEPART(Weekday,d.dates)+@@DATEFIRST-1)%7,d.dates) FirstDay
    ,dateadd(wk, datediff(wk,0,d.dates), 6) EndDay
    from 
    (
        select dateadd(dd,number,@sDate) AS dates from master..spt_values 
        where type='p' and dateadd(dd,number,@sDate)<=@eDate
    ) d
) d2 group by d2.weekRange,d2.FirstDay,d2.EndDay



--SELECT datepart(WEEK,@sDate) weekRange
--,dateadd(Day,1-(DATEPART(Weekday,@sDate)+@@DATEFIRST-1)%7,@sDate) FirstDay
--,dateadd(wk, datediff(wk,0,@sDate), 6) EndDay
--select datepart(WEEKDAY,@sDate)

执行结果:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值