I’m trying to run this query:
select * from activity where id = 9348927
And I receive this error:
Conversion failed when converting the varchar value ’04 30′ to data type int.
Note that I still receive this error when I change * to id, which doesn’t make any sense to me. I don’t receive the error when I run this:
select top 32 * from activity where id = 9348927
I’m pretty sure this means that some of the data on the 33rd row is in a format that SQL Server doesn’t like. Is there any way I can get it to ignore the error and display my data anyway?
EDIT: id is varchar(10)
This usually means that the id column is not a number datatype, but varchar.
9348927 is a number (int) and datatype precedence means the the string value ’04 30′ is converted to int. Standard SQL behaviour.
Try this:
Incidently, the implicit conversion means any index on id will not be used. Compare query plans.
The best way to “work around” this is to fix your data and column type. Otherwise, do the comparison as string which is what id most likely is.