列出一段时间内所有的日期

number只有2048个数
select
convert(varchar(10),dateadd(dd,number,convert(varchar(8),'2015-01-01',120)+'01'),120) as dt from master..spt_values where type='P' and dateadd(dd,number,convert(varchar(8),getdate(),120)+'01')<=dateadd(dd,-1,convert(varchar(8),dateadd(DAY,1222,getdate()),120)+'01')

 

 

原文:http://blog.csdn.net/fengqingtao2008/article/details/40298957

以下是比较精简的

SQL中给定某一日期段生成所有日期数据

SELECT DateAdd(day,number,'2014-09-29')
  FROM master..spt_values
 WHERE type = 'p'
   AND number <= DateDiff(day,'2014-09-29',GetDate())
需要convert的话

SELECT convert(varchar(10),DateAdd(day,number,'2015-01-01'),120) as dt into #temp
  FROM master..spt_values  
 WHERE type = 'p'  
   AND number <= convert(varchar(10),DateDiff(day,'2015-01-01',GetDate()))

   select * from #temp
   drop table #temp

 

 

 

2014-09-29 00:00:00.000
2014-09-30 00:00:00.000
2014-10-01 00:00:00.000
2014-10-02 00:00:00.000
2014-10-03 00:00:00.000
2014-10-04 00:00:00.000
2014-10-05 00:00:00.000
2014-10-06 00:00:00.000
2014-10-07 00:00:00.000
2014-10-08 00:00:00.000
2014-10-09 00:00:00.000
2014-10-10 00:00:00.000
2014-10-11 00:00:00.000
2014-10-12 00:00:00.000
2014-10-13 00:00:00.000
2014-10-14 00:00:00.000

 

posted @ 2016-06-02 22:14  阿玛  阅读(176)  评论(0)    收藏  举报