用sql语句, 我想把当前日期与历史日期之间的所有日期列出来, 比如:今天的日期是2006-12-13日, 过去某一时间2006-12-1日, 显示结果为:2006-12-2
2006-12-3
2006-12-4
2006-12-5
2006-12-6
2006-12-7
2006-12-8
2006-12-9
2006-12-10
2006-12-11
2006-12-12
2006-12-13请各位大虾帮帮我, 不甚感激.......小弟在线等~~~~

解决方案 »

  1.   

    大哥, 请问单纯的用sql不行吗????
      

  2.   

    create function fun(@begDT datetime, @endDT datetime)
    returns @tb table([Date] datetime)
    as
    begin
    while @begDT<=@endDT
    begin
    insert @tb select @begDT
    set @begDT=@begDT+1
    end

    return
    endselect * from fun('2006-12-1', '2006-12-13')
      

  3.   

    select *
    from 表
    where 时间列 between '2006-12-1'and '2006-12-13'
      

  4.   

    谢谢 , marco08(天道酬勤) 已经得到了, 还差一点点的就是, 里面的数据是2006-12-01 00:00:00.000
    ,  请问我只想得到2006-12-01,  应该怎么改???
      

  5.   

    谢谢, roy_88(论坛新星_燃烧你的激情!!)不依托于表, 只是纯粹的用sql的得到
      

  6.   

    转换一下 
    使用 convert(varchar(10),Date,120)
      

  7.   

    marco08(天道酬勤) 已经给了我一个函数, create function fun(@begDT datetime, @endDT datetime)
    returns @tb table([Date] datetime)
    as
    begin
    while @begDT<=@endDT
    begin
    insert @tb select @begDT
    set @begDT=@begDT+1
    end

    return
    end在这个里面怎么转换啊.........
      

  8.   

    不是在函数里面换, 是在 select 里面转换
      

  9.   

    select date=convert(varchar(10),date,120) from fun('2006-12-1', '2006-12-13')--或者
    alter function fun(@begDT datetime, @endDT datetime)
    returns @tb table([Date] varchar(10))
    as
    begin
    while @begDT<=@endDT
    begin
    insert @tb select convert(varchar(10),@begDT,120)
    set @begDT=@begDT+1
    end

    return
    endselect date from fun('2006-12-1', '2006-12-13')
      

  10.   

    insert @tb select @begDT修改成 insert @tb select convert(varchar(10),@begDT,120)就可以了
    但是@tb table([Date] datetime)这个表就需要重新定义了
    @tb table([Date] varchar(10))就可以了
      

  11.   

    select convert(varchar(10),时间字段,120)
    from 表
    where 时间列 between '2006-12-1 00:00:00.000'and '2006-12-13 23:59:59.999'