select convert(char(8),dateadd(day,-1,'20040806'),112)

解决方案 »

  1.   

    --存储过程
    create proc test
    @str char(8) out
    as
    set @str=convert(char(8),dateadd(day,-1,@str),112)
    go--调用
    declare @str char(8)
    set @str='20040806'
    exec test @str out
    select 结果=@str
      

  2.   

    if exists  (select name from sysobjects where type='p' and name='kkk')
    drop proc kkk
    go
    create proc kkk 
           @date varchar(8)
    as 
    select convert(varchar(8),dateadd(day,-1,@date),112)
      

  3.   

    --给出昨天的字符串。         
    Create proc procName
     @yesterday char(10) out
    as
     set @yesterday=Replace(Convert(char(10),getdate()-1,120),'-','')
    go
     
    --调用方式
     declare @day char(10)
      exec procname @day out
      select 昨天=@day