Dette er den liste, du leder efter DataType Precedence
I dine eksempler:
WHERE quantity > '3'
'3' er castet til int, matchende mængde
WHERE quantityTest > 3
Ingen casting påkrævet
WHERE date = 20120101
20120101 som et nummer bliver castet til en dato, som er for stor. f.eks.
select cast(20120101 as datetime)
Dette er forskelligt fra
WHERE date = '20120101'
Hvor datoen som en streng kan støbes.
Hvis du går en tredjedel ned af CAST og CONVERT referencen til afsnittet Implicitte konverteringer er der en tabel over implicitte konverteringer, der er tilladt. Bare fordi det er tilladt, betyder det ikke, at det vil virke, f.eks. (20120101 -> datetime).