[MSSQL]根据年得到所有星期日的日期

go --创建函数 create function GetWeekDays(@year int) returns @t table (星期天varchar(20)) as begin insert @t select substring(convert(varchar,dateadd(day,x,col),120),1,10) from ( select cast(cast(@year as varchar(4))+'-1-1' as datetime) as col )a cross join ( select top 365 b8.i+b7.i + b6.i + b5.i + b4.i +b3.i +b2.i + b1.i + b0.i x from(select 0 i union all select 1) b0 cross join(select 0 i union all select 2) b1 cross join(select 0 i union all select 4) b2 cross join(select 0 i union all select 8) b3 cross join(select 0 i union all select 16) b4 cross join(select 0 i union all select 32) b5 cross join(select 0 i union all select 64) b6 cross join(select 0 i union all select 128) b7 cross join(select 0 i union all select 256) b8 order by 1 )b where datepart(dw,dateadd(day,x,col))=1 return end --测试示例 select * from dbo.GetWeekDays(2011) --运行结果 /* 星期天 -------------------- 2011-01-02 2011-01-09 2011-01-16 2011-01-23 2011-01-30 2011-02-06 2011-02-13 2011-02-20 2011-02-27 2011-03-06 2011-03-13 2011-03-20 2011-03-27 2011-04-03 2011-04-10 2011-04-17 2011-04-24 2011-05-01 2011-05-08 2011-05-15 2011-05-22 2011-05-29 2011-06-05 2011-06-12 2011-06-19 2011-06-26 2011-07-03 2011-07-10 2011-07-17 2011-07-24 2011-07-31 2011-08-07 2011-08-14 2011-08-21 2011-08-28 2011-09-04 2011-09-11 2011-09-18 2011-09-25 2011-10-02 2011-10-09 2011-10-16 2011-10-23 2011-10-30 2011-11-06 2011-11-13 2011-11-20 2011-11-27 2011-12-04 2011-12-11 2011-12-18 2011-12-25 (52 row(s) affected) */
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值