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

Abfrage, die Daten in SQL vergleicht

Verwenden Sie anstelle von „2013-04-12“, dessen Bedeutung von der lokalen Kultur abhängt, „20130412“, das als kulturinvariantes Format erkannt wird.

Wenn Sie mit dem 4. Dezember vergleichen möchten, sollten Sie „20131204“ schreiben. Wenn Sie mit dem 12. April vergleichen möchten, sollten Sie '20130412' schreiben.

Der Artikel Internationale Transact-SQL-Anweisungen schreiben aus der SQL Server-Dokumentation erklärt, wie Anweisungen geschrieben werden, die kulturinvariant sind:

Anwendungen, die andere APIs oder Transact-SQL-Skripts, gespeicherte Prozeduren und Trigger verwenden, sollten die nicht getrennten numerischen Zeichenfolgen verwenden. Beispiel:jjjjmmtt als 19980924.

BEARBEITEN

Da Sie ADO verwenden, besteht die beste Option darin, die Abfrage zu parametrisieren und den Datumswert als Datumsparameter zu übergeben. Auf diese Weise vermeiden Sie das Formatproblem vollständig und profitieren auch von den Leistungsvorteilen parametrisierter Abfragen.

AKTUALISIEREN

Um das ISO 8601-Format in einem Literal zu verwenden, müssen alle Elemente angegeben werden. Um aus dem ISO 8601-Abschnitt der datetime-Dokumentation zu zitieren

Um das ISO 8601-Format zu verwenden, müssen Sie jedes Element im Format angeben. Dazu gehören auch das T, die Doppelpunkte (:) und der Punkt (.), die im Format angezeigt werden.

... der Bruchteil der zweiten Komponente ist optional. Die Zeitkomponente wird im 24-Stunden-Format angegeben.