Heim >Datenbank >MySQL-Tutorial >Wie vermeide ich Fehler außerhalb des zulässigen Bereichs beim Konvertieren von VARCHAR in DATETIME in SQL Server?

Wie vermeide ich Fehler außerhalb des zulässigen Bereichs beim Konvertieren von VARCHAR in DATETIME in SQL Server?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-13 06:34:43620Durchsuche

How to Avoid Out-of-Range Errors When Converting VARCHAR to DATETIME in SQL Server?

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:

  1. Eine VARCHAR-Variable (@Date) enthält die Eingabedatumszeichenfolge.
  2. RIGHT(@Date, 4) extrahiert das Jahr (letzte vier Zeichen).
  3. LEFT(@Date, 2) extrahiert den Monat (die ersten beiden Zeichen).
  4. SUBSTRING(@Date, 3, 2) extrahiert den Tag (Zeichen 3 und 4).
  5. Jahr, Monat und Tag werden im yyyymmdd-Format verkettet.
  6. 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn