日期:2014-05-17  浏览次数:20456 次

一个简单的sql语句拼接问题
sql 2005 环境


declare @sql varchar(1000)
declare @startHH int
declare @endHH int
set @startHH = 1
set @endHH = 2
set @sql = ''
print @startHH
print @endHH
Select @sql = @sql + ' and datepart(hh, ATable.insertTime) between '+''''+ @startHH + '''' + ' and ' +''''+ @endHH + ''''



执行报错,从varchar转换成int时失败,怎么修改?
哎,每次遇到拼接字符串和变量就会出错,郁闷
SQL 字符串拼接

------解决方案--------------------
Select @sql = @sql + ' and datepart(hh, ATable.insertTime) between '+''''+ convert(nvarchar(20),@startHH) + '''' + ' and ' +''''+ convert(nvarchar(20),@endHH) + '''' 



------解决方案--------------------
declare @sql varchar(1000)
declare @startHH int
declare @endHH int
set @startHH = 1
set @endHH = 2
set @sql = ''
print @startHH
print @endHH
Select @sql = @sql + ' and datepart(hh, ATable.insertTime) between '+''''
+ str(@startHH) + '''' + ' and ' 
+''''+ str(@endHH) + ''''