declare @mm as varchar(6)
set @mm = convert(varchar(6), datename(yy,getdate()) + 
               datename(mm,getdate()) ,112)
declare @tb as varchar(50)
set @tb = 'sexit' + @mm+'1060003'
exec('drop table ' + @tb)
这个可以删掉本月生成的表,如何设置使其改为删掉3个月前生成的那张表

解决方案 »

  1.   

    set @mm = convert(varchar(6), datename(yy,getdate()) +  
       datename(mm,dateadd(mm,-3,getdate())) ,112)
    这样写分析是正确的,但没有效果。
    dateadd(mm,-3,getdate())得出的数据好像是如:2004-10-17 00:00:00.000 的格式
      

  2.   

    declare @mm as varchar(6)
    set @mm = convert(varchar(6),dateadd(month,-3,getdate()),112)
    declare @tb as varchar(50)
    set @tb = 'sexit' + @mm+'1060003'
    exec('drop table ' + @tb)
      

  3.   


    declare @mm as varchar(6)
    set @mm = convert(varchar(6),dateadd(month,-3,getdate()),112)
    declare @tb as varchar(50)
    set @tb = 'sexit' + @mm+'1060003'
    exec('drop table ' + @tb)