Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Verwenden Sie 'between' mit varchar (SQL-Server)

Ja, je nachdem, was Sie unter erwartetem Verhalten verstehen. Der BETWEEN-Operator behandelt diese Operanden als Varchars und wendet seine Vergleichsregeln entsprechend an:

Jetzt sehe ich viele potenzielle Probleme beim Vergleichen von Zeichenfolgen und dem Erwarten des Datumsvergleichsverhaltens. Ich habe in meinen Tests keine gesehen, aber schauen Sie sich Ihre Daten genau an. Gibt CONVERT die 24-Stunden-Zeit mit den entsprechenden führenden Nullen zurück?

Diese Frage hat einige andere Ansätze zum Vergleichen von Datumslosen Zeiten, außer sie in varchars umzuwandeln.

Achten Sie auch auf Nulldaten, die dazu führen, dass die entsprechende WHERE-Bedingung falsch (eigentlich unbekannt) zurückgibt.

In Ihrer anderen Frage haben Sie angegeben, dass Sie einen Fehler erhalten. Wenn ja, kannst du das posten?