学习使用master.dbo.spt_values表

如果要生成的临时表中有个连续的数字列,或者连续的日期列,如下所示:

2012-1-1

2012-1-2

2012-1-3

... ...

可以这样写:

declare @begin datetime,@end datetime
set @begin='2012-1-1'
set @end='2012-1-5'

declare @days int
set @days=DATEDIFF(dd,@begin,@end)
select DATEADD(dd,number,@begin)
from master.dbo.spt_values
where type='p' AND number<=@days

 

上面的语句中,@begin与@end可以认为是多外面传来的两个参数,我们要求这两个日期之间的日期序列。

当然,在看上面的代码之前最好先回顾一下master.dbo.spt_values表的数据。

select * from master.dbo.spt_values

我们使用了其中的type与number两列。

 

 

 

 

 

posted @ 2012-01-07 14:54  男儿当自强IT  阅读(4973)  评论(1编辑  收藏  举报