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.
CONVERTFunktion
Wie die CASTFunktion 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. CONVERTfü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 mithilfe 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
CONVERTgibt den durch das Typargument angegebenen Datentyp zurück.
Anmerkung
Amazon Redshift gibt einen Fehler zurück, wenn Sie versuchen, eine problematische Konvertierung durchzuführen, z. B. eine DECIMAL Konvertierung, die an Genauigkeit verliert, wie die folgende:
SELECT CONVERT(decimal(2,1), 123.456);
oder eine INTEGER Konvertierung, die einen Überlauf verursacht:
SELECT CONVERT(smallint, 12345678);
Beispiele
Einige der Beispiele verwenden die TICKITBeispieldatenbank. Weitere Informationen zum Einrichten von Beispieldaten finden Sie unter Daten laden.
Die folgende Abfrage verwendet die CONVERT Funktion, um eine Spalte mit Dezimalzahlen in ganze Zahlen umzuwandeln
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 CONVERT OR-Operation für den GEOMETRY
Datentyp ausführen, um ihn in einen anderen Datentyp zu ändern. Sie können jedoch eine hexadezimale Darstellung eines Zeichenkettenliterals im erweiterten bekannten Binärformat (EWKB) als Eingabe für Funktionen bereitstellen, die ein Argument akzeptieren. GEOMETRY
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)