CONVERT-Funktion - Amazon Redshift

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

CONVERT-Funktion

Wie die CAST-Funktion konvertiert die CONVERT-Funktion einen Datentyp in einen anderen kompatiblen Datentyp. Sie können beispielsweise eine Zeichenfolge in ein Datum oder einen numerischen Typ in eine Zeichenfolge konvertieren. CONVERT führt eine Laufzeitkonvertierung durch, was bedeutet, dass die Konvertierung den Datentyp eines Werts in einer Quelltabelle nicht ändert. Dieser wird nur im Kontext der Abfrage geändert.

Bestimmte Datentypen erfordern eine explizite Konvertierung in andere Datentypen unter Verwendung der CONVERT-Funktion. Andere Datentypen können implizit als Teil eines anderen Befehls konvertiert werden, ohne CAST oder CONVERT zu verwenden. Siehe Kompatibilität von Typen und Umwandlung zwischen Typen.

Syntax

CONVERT ( type, expression )

Argumente

Typ

Einer der unterstützten Datentypen.

expression

Ein Ausdruck, der einen oder mehrere Werte auswertet, beispielsweise ein Spaltenname oder ein Literal. Die Konvertierung von Null-Werten gibt Null-Werte zurück. Der Ausdruck darf keine leeren Zeichenfolgen enthalten.

Rückgabetyp

CONVERT gibt den Datentyp zurück, der durch das Argument type angegeben ist.

Anmerkung

Amazon Redshift gibt einen Fehler zurück, wenn Sie versuchen, eine problematische Konvertierung durchzuführen, beispielsweise die folgende DECIMAL-Konvertierung, die Präzision verliert:

SELECT CONVERT(decimal(2,1), 123.456);

oder eine INTEGER-Konvertierung, die einen Overflow verursacht:

SELECT CONVERT(smallint, 12345678);

Beispiele

Einige der Beispiele verwenden die Beispieldatenbank TICKIT. Weitere Informationen zum Einrichten von Beispieldaten finden Sie unter Daten laden.

Die folgende Abfrage verwendet die CONVERT-Funktion, um eine Spalte mit Dezimalzahlen in Ganzzahlen zu konvertieren.

SELECT CONVERT(integer, pricepaid) FROM sales WHERE salesid=100;

In diesem Beispiel wird eine Ganzzahl in eine Zeichenfolge konvertiert.

SELECT CONVERT(char(4), 2008);

In diesem Beispiel werden das aktuelle Datum und die aktuelle Uhrzeit in einen variablen Zeichendatentyp konvertiert:

SELECT CONVERT(VARCHAR(30), GETDATE()); getdate --------- 2023-02-02 04:31:16

In diesem Beispiel wird die Saletime-Spalte in eine reine Zeitspalte konvertiert, wobei die Datumsangaben aus jeder Zeile entfernt werden.

SELECT CONVERT(time, saletime), salesid FROM sales order by salesid limit 10;

Informationen zum Konvertieren eines Zeitstempels von einer Zeitzone in eine andere finden Sie unter Funktion CONVERT_TIMEZONE. Weitere Datums- und Uhrzeitfunktionen finden Sie unter Datums- und Zeitfunktionen.

Im folgenden Beispiel werden variable Zeichendaten in ein Datetime-Objekt konvertiert.

SELECT CONVERT(datetime, '2008-02-18 02:36:48') as mysaletime;
Anmerkung

Sie können keine CAST- oder CONVERT-Operation für den GEOMETRY-Datentyp durchführen, um ihn in einen anderen Datentyp zu ändern. Sie können jedoch eine hexadezimale Darstellung eines String-Literals im EWKB-Format (Extended Well-Known Binary) als Parameter für Funktionen bereitstellen, die ein GEOMETRY-Argument akzeptieren. Beispielsweise erwartet die folgende ST_AsText-Funktion den Datentyp GEOMETRY.

SELECT ST_AsText('01010000000000000000001C400000000000002040');
st_astext ------------ POINT(7 8)

Sie können außerdem explizit den Datentyp GEOMETRY angeben.

SELECT ST_AsText('010100000000000000000014400000000000001840'::geometry);
st_astext ------------ POINT(5 6)