Freitag, 12. Juni 2009

Ungültiges Datum in SQL-Abfrage

Als ich gerade eine SQL-Abfrage im SQL-Server 2008 ausführen wollte, bin ich auf einen Fehler gestoßen, bei dem ich doch einen Moment lang nach der Fehlerursache suchen musste.

Abfrage:
select * from dbo.Testtabelle
where SpalteVomTypDateTime between '01.09.2008 00:00:00' and '31.09.2008 00:00:00'

Fehlermeldung:
Meldung 242, Ebene 16, Status 3, Zeile 1
Bei der Konvertierung eines char-Datentyps in einen datetime-Datentyp liegt der datetime-Wert außerhalb des gültigen Bereichs.

Ursache:
Normalerweise hätte ich jetzt vermutet, dass ich mich irgendwo vertippt oder mich in der SQL-Syntax vertan habe. Dieses Mal jedoch hat der Fehler nichts mit der Syntax oder mit Schreibfehlern zu tun. Die Ursache für den Abbruch ist ganz einfach. Bei einem Blick auf den Kalender musste ich leider feststellen, dass es den 31. September 2008 gar nicht gibt.

Somit kann natürlich auch kein korrektes Datum erstellt werden.

Zukünftig frage ich wohl besser nur noch Daten ab, die es auch wirklich gibt ;-)

Keine Kommentare:

Kommentar veröffentlichen