So, if you take a look at the following bit of code it produces the following error:
declare @x varchar(30)=-119.00
select @x
select cast(@x as int)
"Conversion failed when converting the varchar value '-119.00' to data type int."
Now this part works fine:
select cast(-119.00 as int)
As does this:
declare @x varchar(30)=-119.00
select @x
select cast(cast(@x as decimal) as int)
My question is, why does the value have to be converted from a varchar to a number value before it gets converted to an INT?