我在sql server中很新。我试图运行此以下查询:使用CAST或CONVERT时SQL Server错误“转换失败”
SELECT AVG(jl.[Stock Weight])
FROM [Settlement Line] jl
WHERE jl.[Vendor No_] = 8516
AND (jl.[Slaughter Date] BETWEEN '2015-11-01' AND '2015-11-30')
AND (CAST(jl.[Item No_] AS INT) BETWEEN 17000 AND 17099)
其结果是,我得到这个错误:
OperationalError: (245, "Conversion failed when converting the varchar value 'PRISGAR.'
我不知道这一点。我也不知道PRISGAR
是什么。我也试过用CONVERT
也得到同样的错误。该字段[Item No_]
是varchar(20)
,我试图将其转换为INT
并在两个数字之间进行检查。
你能提供你的表的模式,所以我们可以看到什么请输入字段?这只是一个类型错误。 – Dane
一行'PRISGAR'作为'[Item No_]'字段中的值。这不能转换为'INT' – Raj
备注:[你不想在SQL Server上使用'BETWEEN'作为日期/时间类型](http://sqlblog.com/blogs/aaron_bertrand/archive/2011/10/19/what-do-between-and-the-devil-have-in-common.aspx)(或者其他地方的很多地方)。 –