问题时这样的!我想去循环获取取一个月的每一天!比如2005-08
我想得到2005-08-01,2005-08-02,2005-08-03,...2005-08-29,2005-08-30,2005-08-31
而且要把得到的每一天都写入数据库中。还有一个月28,29,30,31天的该怎么办?
最好是用sql语句来写!谢谢了!

解决方案 »

  1.   

    用SQL的日期相减函数取得这个月的天数
    然后用循环吧
    菜鸟的方法,呵呵
    还是等高手来看吧
      

  2.   

    我的想法是这样的,不知道行不行。
    假如你给2005-0x,然后你从2005-0x-01到2005-0x-31循环,就是不管是那个月,统统循环31次。
    在循环内,你把这个表示日期的字符串用to_date函数转换成日期格式的,如果转换成功,则把转换的值插入到数据库中,如果不成功(发生异常),则退出循环。这样在转换的时候,系统会自动判断这个值是不是一个合法的日期的。一家之言,祝你好运。
      

  3.   

    --当月第一天
    select getdate()-day(getdate())+1
    --当月最后一天
    select dateadd(month,1,getdate()-day(getdate()))
      

  4.   

    借用jinjazz(近身剪(充电中...)) 的两个数据,写了一下,发现可以
    declare @i int
    declare @to int
    --create table aadate (a datetime)
    select @i = 0
    select @to = 0
    select @to = datediff(day,getdate()-day(getdate())+1, dateadd(month,1,getdate()-day(getdate())))
    while @i <= @to
    begin
    insert into aadate values( dateadd(day,@i,getdate()-day(getdate())+1))
    select @i = @i +1
    end
    select * from aadate