Мне кажется, я понимаю, в чем проблема: вы сравниваете MCode
(который nvarchar
) с целочисленным значением (0123456789
) в вашем запросе, поэтому движок пытается преобразовать ваше поле в intза каждую запись !!Попробуйте это
SELECT *
FROM Orders
WHERE (BCode = '025') AND
(LEFT(Date, 4) = '1390' OR LEFT(Date, 4) = '1391') AND
(MCode = '0123456789')
Как я уже сказал в своем комментарии: не используйте nvarchar(50)
для хранения дат !!Используйте соответствующий тип данных (например, DateTime или Date) для каждого столбца: это позволит избежать головной боли в будущем, упростит проектирование запроса и действительно ускорит его выполнение!