帮忙看一段SQL,帮我改正一下~谢谢各位高手啦~
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>'+getdate()+'-'+@Day+'ORDER BY BSysDate DESC'
EXEC(@SQL)
出错:Conversion failed when converting datetime from character string.
问题点数:20、回复次数:5Top
1 楼Haiwer(海阔天空)回复于 2006-06-02 19:49:22 得分 5
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)
Top
2 楼Reeezak(坚持信念)回复于 2006-06-02 20:55:34 得分 10
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)Top
3 楼Reeezak(坚持信念)回复于 2006-06-02 21:01:05 得分 0
更正
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)
Top
4 楼liangpei2008(笑青天)回复于 2006-06-02 21:01:52 得分 5
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
Top
5 楼Reeezak(坚持信念)回复于 2006-06-02 21:04:25 得分 0
晕,又写错
再次更正
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 @SQLTop




