Fehler out-of-range bei CONVERT oder CAST auf DATETIME
Aus ITwiki
Version vom 19. Februar 2014, 18:45 Uhr von Franky (Diskussion | Beiträge)
Inhaltsverzeichnis
Fehler
Beim Konvertieren eines Strings in das DATETIME Formats erscheint der Fehler
The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.
obwohl ein gültiges Datum als String übergeben wurde, z.B. 31.01.2014.
Lösung
Es muss der Convert Funktion der Style des zu parsenden Datums übergeben werden. z.B.:
Convert(DATETIME, '31.01.2014', 104)
Das 104 steht für Deutsch, also das Format tt.mm.jjjj.
Die Liste der unterschiedlichen Styles findet ihr hier.
Standardmäßig das deutsche Format (SQL Server 2008)
Um das Deutsche Datumsformat als Standard zu setzen, kann man
1. bei dem Benutzer im Microsoft SQL Server Management Studio unter
Security > Logins > Benutzername
in den Properties die Default language auf German setzen.
2. die Sprache des SQL Servers auf Deutsch ändern:
EXEC sp_configure 'default language', 1;
GO
RECONFIGURE WITH OVERRIDE;
GO
Mit diesem Befehl bekommt ihr die verfügbaren Sprachen angezeigt:
SELECT msg.language_id, lang.langid, alias
FROM sys.messages AS msg
JOIN sys.syslanguages AS lang ON lang.msglangid = msg.language_id
GROUP BY msg.language_id, lang.langid, alias
Bewertung
War diese Information hilfreich?
Bitte stimme unten ab.
2
0
Es wurden seit Erstellung der Umfrage am 22:50, 11. Jul. 2017 2 Stimmen abgegeben.
poll-id E49D4DD2BFC32A3991B182C978F99B7F