SQL错误:转换nvarchar值时转换失败

时间:2014-09-18 20:01:13

标签: sql sql-server tsql stored-procedures

我正在尝试编写一个相当简单的存储过程,但在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

有人可以帮助撇号吗?

1 个答案:

答案 0 :(得分:2)

这不是导致错误消息的撇号。您正在尝试添加字符串和整数,这将隐含地将字符串转换为整数。

在连接之前将整数转换为字符串:

set @where = @where + ' and custlocation = ' + cast(@custlocationID as varchar)