Wenn Sie SQL Server verwenden, können Sie einen Datums-/Uhrzeitwert mithilfe von CONVERT()
in eine Zeichenfolge konvertieren Funktion. Mit dieser Funktion können Sie zwischen verschiedenen Datentypen konvertieren.
In diesem Artikel konvertieren wir zwischen verschiedenen Datums-/Zeitdatentypen in ein varchar
oder nvarchar
Zeichenfolge.
Eines der guten Dinge an dieser Funktion ist, dass Sie den Stil angeben können, in dem das Datum zurückgegeben wird. Sie können beispielsweise angeben, ob es als MM/TT/JJJJ zurückgegeben wird , jjjj.mm.tt , Mon tt, jjjj usw. Sie können auch angeben, ob die Zeitkomponente zurückgegeben wird und wie sie formatiert ist.
Syntax
Zunächst einmal die offizielle Syntax:
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
Diese Argumente sind wie folgt definiert:
expression
- Jeder gültige Ausdruck.
data_type
- Der Zieldatentyp. Dazu gehört xml , bigint und sql_variant . Alias-Datentypen können nicht verwendet werden.
length
- Eine optionale ganze Zahl, die die Länge des Zieldatentyps angibt. Der Standardwert ist
30
. style
- Ein ganzzahliger Ausdruck, der angibt, wie
CONVERT()
Funktion übersetzt Ausdruck . Für einen Stilwert von NULL wird NULL zurückgegeben. Datentyp bestimmt die Reichweite.
Einfaches Beispiel
In diesem Beispiel deklarieren wir eine Variable und weisen einen Wert aus GETDATE()
zu Funktion. Wir geben dann den Wert zurück und konvertieren diesen Wert auch in varchar
und gib das zurück:
DECLARE @date datetime = GETDATE(); SELECT @date AS Original, CONVERT(varchar, @date) AS Converted;
Ergebnis:
+-------------------------+---------------------+ | Original | Converted | |-------------------------+---------------------| | 2018-06-07 03:08:21.997 | Jun 7 2018 3:08AM | +-------------------------+---------------------+
Die Standardlänge des Rückgabedatentyps ist 30
, obwohl wir nur varchar
angegeben haben , wird das Ergebnis als varchar(30)
zurückgegeben .
In diesem Beispiel haben wir kein drittes Argument bereitgestellt, um den Stil anzugeben, in dem es zurückgegeben werden soll. Daher wurde es mithilfe des Standardstils für datetime konvertiert und smalldatetime Datentypen, also 0
oder 100
(mehr zu Stilen weiter unten).
Festlegen eines Stils
Sie können ein drittes Argument verwenden, um den Stil anzugeben, den der Rückgabewert annehmen soll:
DECLARE @date datetime = GETDATE(); SELECT @date AS Original, CONVERT(varchar(30), @date, 102) AS Converted;
Ergebnis:
+-------------------------+-------------+ | Original | Converted | |-------------------------+-------------| | 2018-06-07 03:42:33.840 | 2018.06.07 | +-------------------------+-------------+
In diesem Beispiel haben wir einen Stil von 102
angegeben , dem ANSI-Standard für die Anzeige eines Datums mit einer vierstelligen Jahreskomponente.
Um dies in ein ANSI-Format mit einer zweistelligen Jahreszahl zu ändern, können wir einen Stil von 2
verwenden :
DECLARE @date datetime = GETDATE(); SELECT @date AS Original, CONVERT(varchar(30), @date, 2) AS Converted;
Ergebnis:
+-------------------------+-------------+ | Original | Converted | |-------------------------+-------------| | 2018-06-07 03:44:52.433 | 18.06.07 | +-------------------------+-------------+
Weitere Beispiele finden Sie unter CONVERT() von Date/Time in String-Beispiele in SQL Server.