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

usa 'tra' con varchar (server sql)

Sì, a seconda di cosa intendi per comportamento atteso. L'operatore BETWEEN tratterà questi operandi come varchars e applicherà le sue regole di confronto di conseguenza:

Ora, posso vedere molti potenziali problemi, confrontando le stringhe e prevedendo un comportamento di confronto delle date. Non ne ho visto nessuno nei miei test, ma guarda attentamente i tuoi dati. CONVERT restituisce l'ora di 24 ore, con gli zeri iniziali appropriati?

Questa domanda ha altri approcci per confrontare i tempi senza data, oltre a convertirli in varchars.

Inoltre, fai attenzione alle date nulle, che faranno sì che la condizione WHERE corrispondente restituisca falsa (in realtà, sconosciuta).

Nell'altra tua domanda, hai indicato che stavi ricevendo un errore. Se sì, puoi pubblicarlo?