Die CAST SQL-Funktion in MySQL und MariaDB - Konvertierung von Werten |
|
| CAST | Syntax: | CAST(Wert AS Typ) | Rückgabe-Wert: | Abhängig von den verwendeten Datentypen | Funktions-Typ: | Konvertierungs-Funktion | |
| | Die SQL-Funktion CAST() konvertiert Daten in andere Datentypen.
Der Daten-"Typ" in den konvertiert werden soll, kann folgenden Werte beinhalten:
BINARY | Optional kann die Länge der Ausgabe angegeben werden. |
CHAR | Optional kann die Länge der Zeichenkette und der Zeichensatz angegeben werden. |
NCHAR | Wie CHAR, konvertiert aber in den nationalen Zeichensatz. Optional kann die Länge der Zeichenkette angegeben werden. |
VARCHAR | im Oracle-Modus, ab MariaDB Version 10.3. Steht in MySQL 8.0 nicht zur Verfügung. |
DATE | |
DATETIME | Optional kann hier die Stellenzahl für die Ausgabe von Mikrosekunden angegeben werden. Der Maximal-Wert ist dabei 6. |
TIME | |
DECIMAL | Optionale Angabe von Wertgröße und Dezimalstellen: DECIMAL(m[,d]) |
DOUBLE | |
FLOAT | Steht in MariaDB ab Version 10.4.5 zur Verfügung. In MySQL 8.0 vorhanden. |
INTEGER | Gleich bedeutend mit SIGNED oder SIGNED INTEGER. Steht in MySQL 8.0 nicht zur Verfügung. |
SIGNED | Oder SIGNED INTEGER |
UNSIGNED | Oder UNSIGNED INTEGER |
Ist der Wert von "Ausdruck" für die Konvertierung in einen numerischen Wert ungültig, wird 0 zurückgegegen.
Bei der Konvertierung von numerischen Werten aus Zeichenketten werden ungültige Zeichen abgeschnitten.
Ein vorangehendes ungültiges Zeichen führt zu Ausgabe von 0.
Wenn der Wert des Arguments NULL ist, gibt die Funktion NULL zurück. | SQL Beispiele für die CAST-Funktion |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
|
SELECT cast(100 as binary);
SELECT cast('Test' as binary);
SELECT cast('Test' as binary(2));
SELECT cast(100 as char);
SELECT cast(100 as char(2));
SELECT cast('Test' as integer);
SELECT cast(100 as double);
SELECT cast(100.11 as integer);
SELECT cast(100.11 as decimal);
SELECT cast(100.11 as decimal(10,4));
SELECT cast(-100.11 as unsigned);
SELECT cast('-100.11' as unsigned integer);
SELECT cast('-100.11' as signed);
SELECT cast('100.11Test' as decimal(10,4));
SELECT cast('x100.11Test' as decimal(10,4));
SELECT cast(' -100.11Test' as signed);
SELECT cast('x100.11Test' as signed);
SELECT cast('2023-01-01' as datetime);
SELECT cast('2023-01-01' as datetime(6));
SELECT cast('2023-01-01 14:30:00' as date);
SELECT cast('2023-01-01 14:30:00' as time);
SELECT CHARSET(cast('Test' as char));
SELECT CHARSET(cast('Test' as nchar)); /* To National Charset */
SELECT CHARSET(cast('Test' as char CHARACTER SET utf8mb4));
SELECT cast(null as char);
|
|
cast(100 as binary) |
varchar(3) BINARY |
100 |
|
|
cast('Test' as binary) |
varchar(4) BINARY |
Test |
|
|
cast('Test' as binary(2)) |
varchar(2) BINARY |
Te |
|
|
cast(100 as char) |
varchar(3) BINARY |
100 |
|
|
cast(100 as char(2)) |
varchar(2) BINARY |
10 |
|
|
cast('Test' as integer) |
int(4) |
0 |
|
|
cast(100 as double) |
double(22) |
100 |
|
|
cast(100.11 as integer) |
int(7) |
100 |
|
|
cast(100.11 as decimal) |
decimal(11) |
100 |
|
|
cast(100.11 as decimal(10,4)) |
decimal(12) |
100.1100 |
|
|
cast(-100.11 as unsigned) |
bigint(20) |
0 |
|
|
cast('-100.11' as unsigned integer) |
bigint(20) |
18446744073709551516 |
|
|
cast('-100.11' as signed) |
int(7) |
-100 |
|
|
cast('100.11Test' as decimal(10,4)) |
decimal(12) |
100.1100 |
|
|
cast('x100.11Test' as decimal(10,4)) |
decimal(12) |
0.0000 |
|
|
cast(' -100.11Test' as signed) |
bigint(12) |
-100 |
|
|
cast('x100.11Test' as signed) |
bigint(11) |
0 |
|
|
cast('2023-01-01' as datetime) |
datetime(19) |
2023-01-01 00:00:00 |
|
|
cast('2023-01-01' as datetime(6)) |
datetime(26) |
2023-01-01 00:00:00.000000 |
|
|
cast('2023-01-01 14:30:00' as date) |
date(10) |
2023-01-01 |
|
|
cast('2023-01-01 14:30:00' as time) |
time(10) |
14:30:00 |
|
|
CHARSET(cast('Test' as char)) |
varchar(64) BINARY |
binary |
|
|
CHARSET(cast('Test' as nchar)) |
varchar(64) BINARY |
utf8 |
|
|
CHARSET(cast('Test' as char CHARACTER SET utf8mb4)) |
varchar(64) BINARY |
utf8mb4 |
|
|
cast(null as char) |
varchar(0) BINARY |
NULL |
|
|
| Die Beispiele wurden mit dem MyWAY SQL-Manager erstellt: | Verwendung der CAST() Funktion in MySQL und MariaDB-Datenbanken | In MySQL und MariaDB kann die Funktion CAST() verwendet werden, um einen Wert von einem Datentyp in einen anderen zu konvertieren und ermöglicht, den Zieldatentyp für die Konvertierung explizit anzugeben. Die Funktion unterstützt dabei verschiedene Datentypen für die Konvertierung, darunter numerische Typen, Zeichenfolgen-Typen, Datums- und Uhrzeit-Typen und mehr. Zu den häufig verwendeten Datentypen für die Konvertierung gehören unter anderem INTEGER, DECIMAL, VARCHAR, DATE, TIME und DATETIME. Bei Verwendung der Funktion kann es zu Datenverlust oder unerwarteten Ergebnissen führen. Beispielsweise kann die Konvertierung einer Zeichenfolge in eine Ganzzahl zu einer Kürzung führen, wenn die Zeichenfolge nicht numerische Zeichen enthält.
Die Funktion kann eingesetzt werden, damit ein Wert in einem bestimmten Datentyp-Kontext korrekt interpretiert und verarbeitet wird, beispielsweise um Zeichenfolgen für mathematische Berechnungen in einen numerischen Datentyp konvertieren oder einen Datums- und Uhrzeitwert zu Vergleichs- oder Formatierungszwecken in ein bestimmtes Format konvertieren.
Gleitkommazahlen können in eine Ganzzahl umwandeln werden oder umgekehrt, um arithmetische Operationen oder Vergleiche mit unterschiedlichen numerischen Datentypen durchführen zu können.
Zeichenfolgen können in verschiedene Datentypen konvertiert werden, beispielsweise Ganzzahlen oder Datumsangaben, um numerische oder Datums- und Uhrzeit-Informationen aus einer Zeichenfolge zu extrahieren.
Es können Werte in kompatible Datentypen konvertiert werden, um so gewünschte Operationen oder Vergleiche durchführen. Nützlich ist die Funktion auch zum Formatieren von Ergebnissen einer Abfrage. So können beispielsweise numerische Werte mit Formatierungsoptionen wie Dezimalgenauigkeit oder führende Nullen dargestellt werden. | | Weitere MySQL und MariaDB SQL Konvertierungs-Funktionen | |
| | Weitere Informationen zur SQL-Funktion CAST: und und |
|
|
|
|