Dies ist die Liste, nach der Sie DataType Precedence suchen
In Ihren Beispielen:
WHERE quantity > '3'
'3' wird in int umgewandelt, passende Menge
WHERE quantityTest > 3
Kein Casting erforderlich
WHERE date = 20120101
20120101 als Zahl wird auf ein Datum gecastet, das zu groß ist. zB
select cast(20120101 as datetime)
Dies unterscheidet sich von
WHERE date = '20120101'
Wobei das Datum als String kann gecastet werden.
Wenn Sie ein Drittel der CAST- und CONVERT-Referenz nach unten gehen Im Abschnitt Implizite Konvertierungen finden Sie eine Tabelle mit zulässigen impliziten Konvertierungen. Nur weil es erlaubt ist, bedeutet das nicht, dass es funktioniert, wie z. B. (20120101 -> datetime).