表A,有2个字段,[day]和flag
现在这个表是空的,里面有没有数据。页面传一个变量到后台,年(比如说是2011)。怎么写一个SQL语句,
可以一下子生成一年的数据,
这样的数据,第2个字段flag,都是0就行。2011-01-01
2011-01-02
2011-01-03
...
2011-12-31一个很重要的要求:不能使用临时表

解决方案 »

  1.   

    select dateadd(dd,number,cast(DatePart(year,getdate()) as char(4))+'-01-01') as 日期
    from master..spt_values
    where type='p' and number < datediff(dd,cast(DatePart(year,getdate()) as char(4))+'-01-01',
                             cast(DatePart(year,getdate()) as char(4))+'-12-31') 
    /*
    日期
    -----------------------
    2011-01-01 00:00:00.000
    2011-01-02 00:00:00.000
    2011-01-03 00:00:00.000
    2011-01-04 00:00:00.000
    2011-01-05 00:00:00.000
    2011-01-06 00:00:00.000
    2011-01-07 00:00:00.000
    2011-01-08 00:00:00.000
    2011-01-09 00:00:00.000
    2011-01-10 00:00:00.000
    2011-01-11 00:00:00.000
    2011-01-12 00:00:00.000
    ..
      

  2.   

    declare @str varchar(10)
    set @str='2011'select dateadd(dd,number,@str+'-01-01') as 日期
    from master..spt_values
    where type='p' and number < datediff(dd,@str+'-01-01',
                             @str+'-12-31')