Kategorien:

Konvertierungsfunktionen

CAST, ::

Konvertiert einen Wert von einem Datentyp in einen anderen Datentyp. Die Semantik von CAST stimmt mit der Semantik der entsprechenden TO_ datatype-Konvertierungsfunktionen überein. Wenn die Umwandlung nicht möglich ist, wird ein Fehler erzeugt. Weitere Informationen dazu finden Sie unter den einzelnen TO_ datatype-Konvertierungsfunktionen.

Der ::-Operator bietet eine alternative Syntax für CAST.

Siehe auch:

TRY_CAST

Syntax

CAST( <source_expr> AS <target_data_type> )

<source_expr> :: <target_data_type>

Argumente

source_expr

Ausdruck eines beliebigen unterstützten Datentyps, der in einen anderen Datentyp konvertiert werden soll.

target_data_type

Der Datentyp, in den der Ausdruck konvertiert werden soll. Wenn der Datentyp zusätzliche Eigenschaften wie Genauigkeit und Skalierung (bei Zahlen/Dezimalzahlen) unterstützt, können die Eigenschaften eingeschlossen werden.

Nutzungshinweise

  • Wenn die Skalierung nicht ausreicht, um den Eingangswert in der gegebenen Form beizubehalten, rundet die Funktion den Wert.

  • Wenn die Genauigkeit nicht ausreicht, um den Eingabewert in der gegebenen Form beizubehalten, gibt die Funktion einen Fehler aus.

  • Wenn numerische Spalten beim Entladen von Daten in Parquet-Dateien explizit in Formen des Ganzzahl-Datentyps umgewandelt werden, ist der Datentyp dieser Spalten in den Parquet-Dateien INT. Weitere Informationen dazu finden Sie unter Explizite Konvertierung numerischer Spalten in Parquet-Datentypen.

Beispiele

Konvertieren einer Zeichenfolge, die eine Zahl enthält, in eine Dezimalzahl mit der angegebenen Skalierung (2):

SELECT CAST('1.2345' AS DECIMAL(15,2));
+---------------------------------+
| CAST('1.2345' AS DECIMAL(15,2)) |
|---------------------------------|
|                            1.23 |
+---------------------------------+

Konvertiert dieselbe Zeichenfolge in eine Dezimalzahl mit Skalierung 5 unter Verwendung der ::-Notation:

SELECT '1.2345'::DECIMAL(15,5);
+-------------------------+
| '1.2345'::DECIMAL(15,5) |
|-------------------------|
|                 1.23450 |
+-------------------------+

Umwandeln einer Zahl in eine Ganzzahl:

SELECT CAST(1.56 AS INTEGER);
+-----------------------+
| CAST(1.56 AS INTEGER) |
|-----------------------|
|                     2 |
+-----------------------+

Umwandeln einer Zeichenfolge, die ein Datum enthält, in einen Zeitstempel:

SELECT CAST('05-Mar-2014' AS TIMESTAMP);
+----------------------------------+
| CAST('05-MAR-2014' AS TIMESTAMP) |
|----------------------------------|
| 2014-03-05 00:00:00.000          |
+----------------------------------+
Zurück zum Anfang