22,209
社区成员
发帖
与我相关
我的任务
分享
--取出一年的所有星期一
declare @i int
set @i=1
select substring(convert(varchar,dateadd(day,x,col),120),1,10),'星期一' from
(
select cast('2011-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))=2
--取出一年的所有星期四
declare @j int
set @j=5
select substring(convert(varchar,dateadd(day,x,col),120),1,10),'星期四' from
(
select cast('2011-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))=5