Esta es la lista que está buscando Precedencia de tipos de datos
En tus ejemplos:
WHERE quantity > '3'
'3' se convierte en int, cantidad coincidente
WHERE quantityTest > 3
No se requiere lanzamiento
WHERE date = 20120101
20120101 como número se está lanzando a una fecha, que es demasiado grande. por ejemplo
select cast(20120101 as datetime)
Esto es diferente de
WHERE date = '20120101'
Donde la fecha como una cadena se puede lanzar.
Si baja un tercio de la referencia CAST y CONVERT a la sección Conversiones Implícitas, hay una tabla de conversiones implícitas que están permitidas. El hecho de que esté permitido no significa que funcionará, como (20120101 -> fecha y hora).