Die CONVERT SQL-Funktion in MySQL und MariaDB - Konvertierungs-Funktion |
|
| CONVERT | Syntax: | CONVERT(Ausdruck [, in Typ] [, oder Zeichensatz]) | Rückgabe-Wert: | Abhängig von den verwendeten Datentypen | Funktions-Typ: | Konvertierungs-Funktion | |
| | Die SQL-Funktion CONVERT() konvertiert Daten in andere Datentypen oder Zeichenketten in Zeichensätze.
1. Konvertieren in Datentypen.
Syntax: CONVERT(Wert, Typ):
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.
2. Konvertieren in Zeichensätze.
Syntax: CONVERT(Wert USING Zeichensatz) oder CONVERT(Wert, CHAR CHARACTER SET Zeichensatz):
Nummerische Werte werden in Zeichenfolgen konvertiert.
Mit der Funktion CHARSET() kann der Zeichesatz des Ergebnisses angezeigt werden.
Wenn der Wert des Arguments NULL ist, gibt die Funktion NULL zurück. | Beispiele zum Konvertieren in verschiedene Daten-Typen |
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
|
|
SELECT convert(100, binary);
SELECT convert('Test', binary);
SELECT convert('Test', binary(2));
SELECT convert(100, char);
SELECT convert(100, char(2));
SELECT convert('Test', integer);
SELECT convert(100, double);
SELECT convert(100.11, integer);
SELECT convert(100.11, decimal);
SELECT convert(100.11, decimal(10,4));
SELECT convert(-100.11, unsigned);
SELECT convert('-100.11', unsigned integer);
SELECT convert('-100.11', signed);
SELECT convert('100.11Test', decimal(10,4));
SELECT convert('x100.11Test', decimal(10,4));
SELECT convert(' -100.11Test', signed);
SELECT convert('x100.11Test', signed);
select convert('2023-01-01', datetime);
select convert('2023-01-01', datetime(6));
select convert('2023-01-01 14:30:00', date);
select convert('2023-01-01 14:30:00', time);
select convert(null, char);
|
|
convert(100, binary) |
varchar(3) BINARY |
100 |
|
|
convert('Test', binary) |
varchar(4) BINARY |
Test |
|
|
convert('Test', binary(2)) |
varchar(2) BINARY |
Te |
|
|
convert(100, char) |
varchar(3) BINARY |
100 |
|
|
convert(100, char(2)) |
varchar(2) BINARY |
10 |
|
|
convert('Test', integer) |
int(4) |
0 |
|
|
convert(100, double) |
double(22) |
100 |
|
|
convert(100.11, integer) |
int(7) |
100 |
|
|
convert(100.11, decimal) |
decimal(11) |
100 |
|
|
convert(100.11, decimal(10,4)) |
decimal(12) |
100.1100 |
|
|
convert(-100.11, unsigned) |
bigint(20) |
0 |
|
|
convert('-100.11', unsigned integer) |
bigint(20) |
18446744073709551516 |
|
|
convert('-100.11', signed) |
int(7) |
-100 |
|
|
convert('100.11Test', decimal(10,4)) |
decimal(12) |
100.1100 |
|
|
convert('x100.11Test', decimal(10,4)) |
decimal(12) |
0.0000 |
|
|
convert(' -100.11Test', signed) |
bigint(12) |
-100 |
|
|
convert('x100.11Test', signed) |
bigint(11) |
0 |
|
|
convert('2023-01-01', datetime) |
datetime(19) |
2023-01-01 00:00:00 |
|
|
convert('2023-01-01', datetime(6)) |
datetime(26) |
2023-01-01 00:00:00.000000 |
|
|
convert('2023-01-01 14:30:00', date) |
date(10) |
2023-01-01 |
|
|
convert('2023-01-01 14:30:00', time) |
time(10) |
14:30:00 |
|
|
convert(null, char) |
varchar(0) BINARY |
NULL |
|
|
| Beispiele zum Konvertieren in Zeichensätze |
1
2
3
4
5
6
7
8
9
10
11
12
13
|
|
SELECT convert(100.233 USING utf8);
SELECT CHARSET(convert(100.234 USING utf8));
SELECT CHARSET(convert(100 USING utf8));
SELECT CHARSET(convert('Test' USING utf32));
SELECT CHARSET(convert('Test', char));
SELECT CHARSET(convert('Test', nchar)); /* To National Character Set */
SELECT CHARSET(convert('Test', char CHARACTER SET utf8mb4));
SELECT convert(null USING utf32);
|
|
convert(100.233 USING utf8) |
varchar(8) BINARY |
100.233 |
|
|
CHARSET(convert(100.234 USING utf8)) |
varchar(64) BINARY |
utf8 |
|
|
CHARSET(convert(100 USING utf8)) |
varchar(64) BINARY |
utf8 |
|
|
CHARSET(convert('Test' USING utf32)) |
varchar(64) BINARY |
utf32 |
|
|
CHARSET(convert('Test', char)) |
varchar(64) BINARY |
binary |
|
|
CHARSET(convert('Test', nchar)) |
varchar(64) BINARY |
utf8 |
|
|
CHARSET(convert('Test', char CHARACTER SET utf8mb4)) |
varchar(64) BINARY |
utf8mb4 |
|
|
convert(null USING utf32) |
varchar(0) BINARY |
NULL |
|
|
| Die Beispiele wurden mit dem MyWAY SQL-Manager erstellt: | Verwendung der CONVERT() Funktion in MySQL und MariaDB-Datenbanken | Die CONVERT()-Funktion in MySQL und MariaDB wird verwendet, um einen Wert von einem Datentyp in einen anderen zu konvertieren. Damit kann der Datentyp einer Tabellen-Spalte oder eines bestimmten Werts innerhalb eines Abfrageergebnisses geändert werden und ist somit nützlich für verschiedene Anwendungen, wie beispielsweise Datentypkonvertierungen, um Datentypkonflikte zu behandeln und Berechnungen oder Vergleiche für verschiedene Datentypen durchzuführen, Zeichensatzkonvertierungen, um die Kompatibilität zwischen verschiedenen Zeichensätzen sicherzustellen, numerische Formatierungen, um Genauigkeit, Skalierung und Formatierung von Dezimal- oder Gleitkommazahlen zu steuern, String-Manipulationen, um Darstellung oder Struktur von Zeichenfolgenwerten in Abfragen zu ändern und bedingte Wertkonvertierungen, um Werte basierend auf bestimmten Bedingungen dynamisch zu konvertieren.
Das Verhalten der Funktion kann zwischen MySQL und MariaDB leicht variieren. | | Weitere MySQL und MariaDB SQL Konvertierungs-Funktionen | |
| | Weitere Informationen zur SQL-Funktion CONVERT: und und |
|
|
|
|