报表日期连续显示

 

做报表时候有个需求要把日期连续显示,没产生营业数据的那天以0显示,日期还得连续,如下代码可生产连续日期,与营业数据表连接即可查询

declare @t table ( times varchar(10))
declare @starttiem varchar(10),
        @endtime varchar(10)
select
  @starttiem = '2012-02-01',
  @endtime ='2012-03-01'   
while @starttiem<=@endtime  
  begin 
    insert into @t  
    select @starttiem  
    set @starttiem=convert(varchar(10),dateadd(day,1,@starttiem),23)
  end
select * from @t

 times      
----------
2012-02-01
2012-02-02
2012-02-03
2012-02-04
2012-02-05
2012-02-06
2012-02-07
2012-02-08
2012-02-09
2012-02-10
2012-02-11
2012-02-12
2012-02-13
2012-02-14
2012-02-15
2012-02-16
2012-02-17
2012-02-18
2012-02-19
2012-02-20
2012-02-21
2012-02-22
2012-02-23
2012-02-24
2012-02-25
2012-02-26
2012-02-27
2012-02-28
2012-02-29
2012-03-01

(所影响的行数为 30 行)