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.