如在A表,快速插入9月份所有日期:
2009-9-1
2009-9-2
2009-9-3
2009-9-4
2009-9-5
2009-9-6
2009-9-7
2009-9-8
2009-9-9
2009-9-10
2009-9-11
2009-9-12
2009-9-13
2009-9-14
2009-9-15
2009-9-16
2009-9-17
2009-9-18
2009-9-19
2009-9-20
2009-9-21
2009-9-22
2009-9-23
2009-9-24
2009-9-25
2009-9-26
2009-9-27
2009-9-28
2009-9-29
2009-9-30

解决方案 »

  1.   

    select dateadd(day,number,'2009-9-1') from master..spt_values where type='P'
    and dateadd(day,number,'2009-9-1')<='2009-9-30'
      

  2.   

    declare @date datetime
    set @date='2009-9-1'while @date<'2009-10-1'
    begin
    insert into tb(col) values(@date)
    set @date=dateadd(day,1,@date)
    end
      

  3.   

    如何快速? 没有快速的话还是老实下面的吧
    set @LastFirst = '2009-9-1'
    while @LastFirst <='2009-9-30'
    begin 
    insert table select @LastFirst 
    set @LastFirst=@LastFirst+1 
    end
      

  4.   


    select dateadd(day,number,'2009-09-01') as col into A from master..spt_values where type='p' and number<30select * from A
      

  5.   

    wufeng4552的方法 应该是LZ要的快速法 呵呵
      

  6.   

    select convert(varchar(10),dateadd(day,number,'2009-9-1'),20) dt into #temp from master..spt_values where type='P'
    and dateadd(day,number,'2009-9-1')<='2009-9-30'Select * from #temp