declare @date datetime,@newdate datetime
declare @cn int
set @cn=89--赋初值
while (@cn>0)
begin
     select @newdate=dateadd(month,@date)
      insert into yourtable(fieldname) values(@newdate)
set @date=@newdate
set @cn=@cn-1
end--计算时间间隔天数
select datediff(day,@date,@newdate)

解决方案 »

  1.   

    对不起,上面的新日期不是字段,而是要的结果表结构如下:
    ID     Buydate    period  periodcount   Content     Inputdate
    1    2003-02-22     0.5      5          川A33506      2004-03-24
    2    2001-05-20     1.8      8          川A56985      2004-03-24
    3    2002-08-10     2        2          川A97503      2004-03-24
    以上程序可表示为以下关系:
    Datetime newdate;
    Datetime Defdate;
    Defdate=Buydate;
    while(periodcount>0)
    {

    newdate=Defdate+period*12;
    //save the newdate to anthor database
    .....
    Defdate=newdate;
    }
    但也要注意的是buydate为字段的值,它不至一条!!!!
      

  2.   

    其次是计算上一步的结果中的newdate字段的内容与inputdate进行比较出相间的天数,
    那个存放newdate的数据库我们可以设一下结构:
    并给出以下记录的一些计算结果如下共参考
    ID   PID     newdate      inputdate
    1     1    2003-08-22       2004-03-24
    2     1    2004-02-22       2004-03-24
    3     1    2004-08-22       2004-03-24
    4     1    2005-02-22       2004-03-24
    5     1    2005-08-22       2004-03-24
    6     2    .................
    7     2    ........
    ..........
    14    3    2004-08-10       2004-03-24
    15    3    2006-08-10       2004-03-24