To jest lista, której szukasz Pierwszeństwo typów danych
W twoich przykładach:
WHERE quantity > '3'
„3” jest rzucane na int, pasująca ilość
WHERE quantityTest > 3
Nie wymaga przesyłania
WHERE date = 20120101
20120101 jako liczba jest rzucany na datę, która jest zbyt duża. np.
select cast(20120101 as datetime)
To różni się od
WHERE date = '20120101'
Gdzie data jako ciąg można rzucać.
Jeśli spadniesz o jedną trzecią odnośniki CAST and CONVERT w sekcji Konwersje niejawne znajduje się tabela dozwolonych konwersji niejawnych. Tylko dlatego, że jest to dozwolone, nie oznacza to, że będzie działać, na przykład (2010101 -> data i godzina).