我现有一个表Ta,里面有ID、D1、D2、D3字段,分别表示标识、日期1、日期2、日期3。
原来入库时,日期1是入库时系统当天的日期,日期2是比日期1多n(1到100之间)天的随意日期,日期3为空。
现要求:随着时间的推移,如果系统当天的日期大于或等于日期2了,则日期3=日期2-11,即日期3比日期2少11天。
我想写一个存储过程,每天系统自动调用一次,更新满足条件数据的日期3值,请问如何写?
Create proc aaaa
Declare @ID int,@D1 datetime,@D2 datetime,@D3 datetime
AsGo

解决方案 »

  1.   

    Create proc aaaa 
    As
      update Ta set D3=D2-11
      where Datediff(day,D2,getdate())>=0Go
      

  2.   

    Create proc aaaa
    --Declare @ID int,@D1 datetime,@D2 datetime,@D3 datetime
    As
      update Ta set D3=D2-11 where D2<=getdate()
    Go
      

  3.   

    UPDATE TA SET 日期3=DATEADD(d,-11,日期2) where 日期2<=GETDATE()
      

  4.   

    update 表名 set 日期3=DATEADD(d,-11,日期2) where 日期2<getdate()