2013年8月12日 星期一

類似 connect by + dual,得到許多日期的方法


Declare @start int, @end int
Select @start=1, @end=1000;
With cte( Number ) as
(
    Select @start as Number
     union all
    Select Number + 1
      from cte
     where Number < @end
)
Select getdate()+number*-1,
       datename(weekday,getdate()+number*-1),
       datepart(weekday,getdate()+number*-1)
  From cte Option (MaxRecursion 1000)



Declare @start datetime, @end datetime
Select @start='2013-08-01', @end='2013-08-13';
With cte( dt ) as
(
    Select @start as dt
     union all
    Select dt+1
      from cte
     where dt+1 < @end
)
Select dt,datename(weekday,dt),datepart(weekday,dt)
  From cte


沒有留言:

張貼留言