Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

SQL Server e conversione implicita dei tipi

Questo è l'elenco che stai cercando DataType Precedence

Nei tuoi esempi:

WHERE quantity > '3'

'3' viene convertito in int, corrispondente alla quantità

WHERE quantityTest > 3

Nessun casting richiesto

WHERE date = 20120101

20120101 come numero viene scelto per una data troppo grande. es.

select cast(20120101 as datetime)

Questo è diverso da

WHERE date = '20120101'

Dove la data come stringa può essere lanciato.

Se scendi di un terzo del Riferimento CAST e CONVERT alla sezione Conversioni implicite è presente una tabella delle conversioni implicite consentite. Solo perché è consentito non significa che funzionerà, ad esempio (20120101 -> datetime).