我正在尝试编写一个相当简单的存储过程,但在print @sql
set @where = ' where deliverydate between '''+ @FromDate + ''' and ''' + @ThruDate + ''''
set @where = @where + ' and custlocation = '+ @custlocationID + ''''
错误如下:
转换nvarchar值时转换失败,其中'8/1/2013'和'8/20/2014'之间的deliverydate和custlocationID ='的数据类型为int。
@custlocationID
被声明为int
。
有人可以帮助撇号吗?
答案 0 :(得分:2)
这不是导致错误消息的撇号。您正在尝试添加字符串和整数,这将隐含地将字符串转换为整数。
在连接之前将整数转换为字符串:
set @where = @where + ' and custlocation = ' + cast(@custlocationID as varchar)