Я совершенно новый в sql-сервере. Я пытаюсь запустить этот запрос:Ошибка SQL Server «Сбой конверсии» при использовании CAST или CONVERT
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
. Замечание: [вы не хотите использовать' BETWEEN' для типов даты и времени на SQL Server] (http://sqlblog.com/blogs/aaron_bertrand/archive/2011/10 /19/what-do-between-and-the-devil-have-in-common.aspx) (или действительно, многое другое). –