需要用sql实现 根据制定日期范围 如 2009-8-30 ~ 2009-9-5
列举给定日期范围中的日期
得到如下:
2009-8-30
2009-8-31
2009-9-1
2009-9-2
2009-9-3
2009-9-4
2009-9-5

解决方案 »

  1.   

    http://topic.csdn.net/u/20090906/17/a91cd31e-abf7-4190-8486-c5491aa63c71.html?seed=1380177511&r=59598572#r_59598572
      

  2.   

    declare @sdate datetime
    declare @edate datetime
    set @sdate = '2009-8-30'
    set @edate = '2009-9-5'
    select 
        dateadd(dd,num,@sdate) 
    from 
        (select isnull((select count(1) from sysobjects where id<t.id),0) as num from sysobjects t) a
    where
        dateadd(dd,num,@sdate)<=@edate/*
                                                           
    ------------------------------------------------------ 
    2009-08-30 00:00:00.000
    2009-08-31 00:00:00.000
    2009-09-01 00:00:00.000
    2009-09-02 00:00:00.000
    2009-09-03 00:00:00.000
    2009-09-04 00:00:00.000
    2009-09-05 00:00:00.000(所影响的行数为 7 行)
    */
      

  3.   

    --功能:找出在2个日期之间的日期
    --startdate:2009年9月15日  endDate:2009年10月3日 declare @startdate datetime,@enddate datetime
    set @startdate='2009-08-30'
    set @enddate='2009-09-05'select convert(varchar(10),dateadd(day,number,@startdate),120) 
    from
        master..spt_values 
    where 
        datediff(day,dateadd(day,number,@startdate), @enddate)>=0
        and number>0 
        and type='p'/*----------
    2009-08-31
    2009-09-01
    2009-09-02
    2009-09-03
    2009-09-04
    2009-09-05(6 行受影响)/*
      

  4.   

    /*
    Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86)   Jul  9 2008 14:43:34   Copyright (c) 
    1988-2008 Microsoft Corporation  Enterprise Evaluation Edition on Windows NT 5.1 <X86> 
    (Build 2600: Service Pack 3) 
     愿和大家共同进步
    如有雷同、实属巧合
     ★★★★★soft_wsx★★★★★
    */
    if OBJECT_ID('tb') is not null drop table tb
      go
    create table tb(id int,DateFrom  datetime,  DateTo datetime)
    insert tb
    select 
    1,  '2009-8-30','2009-9-5' select a.id,convert(nvarchar(10),dateadd(day,b.number,datefrom),120) as 日期
      from tb a inner join master..spt_values b
      on b.number<=DATEDIFF(day,datefrom,dateto) and b.type='p'
    /*
    id 日期
    1 2009-08-30
    1 2009-08-31
    1 2009-09-01
    1 2009-09-02
    1 2009-09-03
    1 2009-09-04
    1 2009-09-05
    */