DECLARE @SQL varchar(300)
declare @CID varchar(4)
declare @Day varchar(4)
set @CID='0001'
set @Day='10'
SET @SQL='SELECT * FROM basBusiness WHERE CID='''+@CID+''' and BSysDate>'''+convert(varchar(7),getdate(),120)+'-'+@Day+''' ORDER BY BSysDate DESC'
EXEC(@SQL)

解决方案 »

  1.   

    DECLARE @SQL varchar(300)
    declare @CID varchar(4)
    declare @Day varchar(4)
    set @CID='0001'
    set @Day='10'
    SET @SQL='SELECT * FROM basBusiness WHERE CID='+@CID+' and BSysDate>dateadd(dd, '+getdate()+', cast('+@Day+' as int) * -1) ORDER BY BSysDate DESC'
    EXEC(@SQL)
      

  2.   

    更正DECLARE @SQL varchar(300)
    declare @CID varchar(4)
    declare @Day varchar(4)
    set @CID='0001'
    set @Day='10'
    SET @SQL='SELECT * FROM basBusiness WHERE CID='''+@CID+ ''' and BSysDate>dateadd(dd, '''+ convert(varchar, getdate(), 120) +''', cast('''+@Day+''' as int) * -1) ORDER BY BSysDate DESC'
    EXEC(@SQL)
      

  3.   

    DECLARE @SQL varchar(300)
    declare @CID varchar(4)
    declare @Day varchar(4)
    set @CID='0001'
    set @Day='10'
    SET @SQL='SELECT * FROM basBusiness WHERE CID='+@CID+' and BSysDate>'+char(39)+convert(varchar(8),getdate(),120)+@Day+char(39)+' ORDER BY BSysDate DESC'
    print @SQL
      

  4.   

    晕,又写错
    再次更正DECLARE @SQL varchar(300)
    declare @CID varchar(4)
    declare @Day varchar(4)
    set @CID='0001'
    set @Day='10'
    SET @SQL='SELECT * FROM basBusiness WHERE CID='''+@CID+ ''' and BSysDate>dateadd(dd, '+@Day+' * -1, '''+ convert(varchar, getdate(), 120) +''') ORDER BY BSysDate DESC'
    print @SQL