SQL Server VARCHAR-zu-DATETIME-Konvertierung: Verhindern von Fehlern außerhalb des zulässigen Bereichs
Das Konvertieren von VARCHAR-Zeichenfolgen, die Datumsangaben darstellen (wie „mmtttjjj“), in den DATETIME-Typ von SQL Server 2008 führt bei direkter Verwendung von CONVERT
häufig zu „Wert außerhalb des gültigen Bereichs“-Fehlern. Dies liegt daran, dass das Eingabeformat nicht mit dem erwarteten DATETIME-Format übereinstimmt.
Die Lösung besteht darin, die VARCHAR-Zeichenfolge vor der Konvertierung in ein yyyymmdd
-Format umzustrukturieren. So geht's:
<code class="language-sql">DECLARE @Date char(8) SET @Date = '12312009' SELECT CONVERT(datetime, RIGHT(@Date, 4) + LEFT(@Date, 2) + SUBSTRING(@Date, 3, 2))</code>
Dieser Code führt die folgenden Schritte aus:
@Date
) enthält die Eingabedatumszeichenfolge.RIGHT(@Date, 4)
extrahiert das Jahr (letzte vier Zeichen).LEFT(@Date, 2)
extrahiert den Monat (die ersten beiden Zeichen).SUBSTRING(@Date, 3, 2)
extrahiert den Tag (Zeichen 3 und 4).yyyymmdd
-Format verkettet.CONVERT()
wandelt schließlich die korrekt formatierte Zeichenfolge in einen DATETIME-Wert um.Diese Methode vermeidet effektiv den Fehler außerhalb des Bereichs und stellt eine erfolgreiche Konvertierung sicher.
Das obige ist der detaillierte Inhalt vonWie vermeide ich Fehler außerhalb des zulässigen Bereichs beim Konvertieren von VARCHAR in DATETIME in SQL Server?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!