Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So konvertieren Sie einen Datums-/Uhrzeitwert mit CONVERT() in eine Zeichenfolge in SQL Server

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 xmlbigint 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.