296: Bei der Konvertierung des char-Datentyps in den smalldatetime-Datentyp
Fehlermeldung:
Meldung 296, Ebene 16, Status 1, Zeile 1
Bei der Konvertierung des char-Datentyps in den smalldatetime-Datentyp liegt der smalldatetime-Wert außerhalb des gültigen Bereichs.
Ebene:
16.
Beschreibung:
Diese Fehlermeldung erscheint, wenn SQL Server einen DATETIME Wert nicht in einen gültigen SMALLDATETIME Wert konvertieren kann.
Auswirkungen:
Das SQL Statement kann zwar geparst werden, jedoch zur Laufzeit wird der Fehler ausgelöst.
Behebung:
Fehler der Ebene 16 sind Fehler, die vom Anwender hervorgerufen werden. Sie können und müssen vom Anwender korrigiert werden. Bei der Konvertierung in den SMALLDATETIME Datentypen muß der Gültigkeitsbereich dieses Datentypen berücksichtigt werden.
Versionen:
Alle Versionen von SQL Server.
Beispiele:
SELECT CAST('18991231' AS SMALLDATETIME)
Anmerkungen:
Im obigen Beispiel ist die Zeichenfolge '18991231' ausserhalb des Gültigkeitsbereiches des SMALLDATETIME Datentypen. Sobald der zu konvertierende Wert innerhalb des zulässigen Wertebereiches liegt, kümmert sich SQL Server automatisch um die Konvertierung. Dabei muß man mit den Rundungskonventionen für den SMALLDATETIME Datentypen vertraut sein, um Überraschungen zu vermeiden. Da dieser Datentyp "nur" eine Genauigkeit von einer Minute hat, werden Sekunden (inkl. Millisekunden) > 30.001 auf die nächste Minute aufgerundet. Zeitwerte < 29.997 werden auf die nächste Minute abgerundet.