没错误,结果不对,B表就是a表,QDRQY显示的是一样的,不会根据QDRQ改变而改变

解决方案 »

  1.   

    DECLARE @dt DATETIMESET @dt='2014-03-21'SET LANGUAGE N'English'
    UPDATE b SET QDRQY=CONVERT(VARCHAR(11),GETDATE(),109)
      

  2.   

    不能这么写吧,我是把现有的日期更改呀,只要新增一条记录,就执行存储过程,我写的完整语句如下:
    create proc z_XSHT_ENGLISH
    @djlsh int
    as
    set language 'english'
    update XSHTH set XSHTH.QDSJY=a.qdrqa,XSHTH.ZYSJY=a.zysja,XSHTH.ZZSJY=a.zzsja,XSHTH.SXSJY=a.sxrqa,XSHTH.JSSJY=a.wxrqa 
    from xshth,(select qdrqa=stuff(stuff(convert(varchar(11),qdrq,109),4,1,N'.'),7,1,N','),
           zysja=stuff(stuff(convert(varchar(11),zysj,109),4,1,N'.'),7,1,N','),
           zzsja=stuff(stuff(convert(varchar(11),zzsj,109),4,1,N'.'),7,1,N','),
           sxrqa=stuff(stuff(convert(varchar(11),sxrq,109),4,1,N'.'),7,1,N','),
           wxrqa=stuff(stuff(convert(varchar(11),wxrq,109),4,1,N'.'),7,1,N',') from XSHTH where DjLsh=@djlsh) a where xshth.DjLsh=@djlsh
      

  3.   

    哪里需要这么复杂create proc z_XSHT_ENGLISH
     @djlsh int
     as
     set language 'english'
     UPDATE
      b 
     set 
      QDSJY=CONVERT(VARCHAR(11),QDSJY,109),
    ...
    FROM
      XSHTH AS b 
    WHERE
      b.DjLsh=@djlsh
      

  4.   

    谢谢了,感觉你写的更简单有用,如果QDSJY为空值时,语句要不要加特殊处理呀
      

  5.   

    这样吗?
    select stuff(stuff(convert(varchar(11),getdate(),109),3,1,N'.'),6,1,N',')