Die CONV SQL-Funktion in MySQL und MariaDB - Zahlen konvertieren |
|
| CONV | Syntax: | CONV(Wert, von Basis, zu Basis) | Rückgabe-Wert: | CHAR | Funktions-Typ: | Konvertierungs-Funktion | |
| | Die SQL-Funktion CONV() konvertiert Zahlen zwischen verschiedenen Zahlensystemen.
CONV() gibt eine Zeichenfolge von "Wert" zurück, konvertiert "von Basis" "in Basis".
Wenn "Wert" NULL ist oder wenn "von Basis" oder "in Basis" unzulässig sind, gibt CONV() NULL zurück.
Die minimale Basis ist 2 und die maximale Basis ist 36.
Ähnliche Funktionen mit fester Basis sind: BIN(), OCT(), HEX() und UNHEX().
Das Argument "Wert" wird als ganze Zahl interpretiert, kann aber auch als Zeichenkette angegeben werden.
Wenn "Wert" keine ganze Zahl ergibt, wird 0 zurückgegeben.
Wenn "in Basis" eine negative Zahl ist, wird "Wert" als Zahl mit Vorzeichen angesehen, andernfalls ohne Vorzeichen.
CONV() arbeitet mit 64-Bit-Präzision.
Die Angabe von hexadezimalen und binären Literalwerte im Argument funktionieren in MariaDB nur eingeschränkt:
0xffff funktioniert nicht, 0xffff + 0 hingegen schon. Siehe auch Beispiele. | Beispiele ausgeführt auf MariaDB 10.5 |
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
|
|
select conv(10, 10, 16);
select conv(10, 10, 8);
select conv(10, 10, 4);
select conv(10, 10, 2);
select conv('10', 10, 2);
select conv(-10, 10, 8);
select conv(-10, 10, -8);
select conv('ff', 16, 10);
select conv('ff00', 16, 10);
select conv('1111', 2, 10);
select conv('1111', 2, 16);
select conv(0xff00, 10, 10); /* works not in MariaDB*/
select conv(0xff00 + 0, 10, 10); /* works */
select conv(0b1111, 10, 10); /* works not in MariaDB*/
select conv(0b1111 + 0, 10, 10); /* works */
select conv('test', 10, 2);
select conv(null, 10, 2);
select conv(10, 10, 1);
|
|
conv(10, 10, 16) |
varchar(64) BINARY |
A |
|
|
conv(10, 10, 8) |
varchar(64) BINARY |
12 |
|
|
conv(10, 10, 4) |
varchar(64) BINARY |
22 |
|
|
conv(10, 10, 2) |
varchar(64) BINARY |
1010 |
|
|
conv('10', 10, 2) |
varchar(64) BINARY |
1010 |
|
|
conv(-10, 10, 8) |
varchar(64) BINARY |
1777777777777777777766 |
|
|
conv(-10, 10, -8) |
varchar(64) BINARY |
-12 |
|
|
conv('ff', 16, 10) |
varchar(64) BINARY |
255 |
|
|
conv('ff00', 16, 10) |
varchar(64) BINARY |
65280 |
|
|
conv('1111', 2, 10) |
varchar(64) BINARY |
15 |
|
|
conv('1111', 2, 16) |
varchar(64) BINARY |
F |
|
|
conv(0xff00, 10, 10) |
varchar(64) BINARY |
0 |
|
|
conv(0xff00 + 0, 10, 10) |
varchar(64) BINARY |
65280 |
|
|
conv(0b1111, 10, 10) |
varchar(64) BINARY |
0 |
|
|
conv(0b1111 + 0, 10, 10) |
varchar(64) BINARY |
15 |
|
|
conv('test', 10, 2) |
varchar(64) BINARY |
0 |
|
|
conv(null, 10, 2) |
varchar(64) BINARY |
NULL |
|
|
conv(10, 10, 1) |
varchar(64) BINARY |
NULL |
|
|
| Beispiele ausgeführt auf MySQL 8.0.23 |
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
|
|
select conv(10, 10, 16);
select conv(10, 10, 8);
select conv(10, 10, 4);
select conv(10, 10, 2);
select conv('10', 10, 2);
select conv(-10, 10, 8);
select conv(-10, 10, -8);
select conv('ff', 16, 10);
select conv('ff00', 16, 10);
select conv('1111', 2, 10);
select conv('1111', 2, 16);
select conv(0xff00, 10, 10); /* works on MySQL 8.0 */
select conv(0xff00 + 0, 10, 10); /* works */
select conv(0b1111, 10, 10); /* works on MySQL 8.0 */
select conv(0b1111 + 0, 10, 10); /* works */
select conv('test', 10, 2);
select conv(null, 10, 2);
select conv(10, 10, 1);
|
|
conv(10, 10, 16) |
varchar(65) BINARY |
A |
|
|
conv(10, 10, 8) |
varchar(65) BINARY |
12 |
|
|
conv(10, 10, 4) |
varchar(65) BINARY |
22 |
|
|
conv(10, 10, 2) |
varchar(65) BINARY |
1010 |
|
|
conv('10', 10, 2) |
varchar(65) BINARY |
1010 |
|
|
conv(-10, 10, 8) |
varchar(65) BINARY |
1777777777777777777766 |
|
|
conv(-10, 10, -8) |
varchar(65) BINARY |
-12 |
|
|
conv('ff', 16, 10) |
varchar(65) BINARY |
255 |
|
|
conv('ff00', 16, 10) |
varchar(65) BINARY |
65280 |
|
|
conv('1111', 2, 10) |
varchar(65) BINARY |
15 |
|
|
conv('1111', 2, 16) |
varchar(65) BINARY |
F |
|
|
conv(0xff00, 10, 10) |
varchar(65) BINARY |
65280 |
|
|
conv(0xff00 + 0, 10, 10) |
varchar(65) BINARY |
65280 |
|
|
conv(0b1111, 10, 10) |
varchar(65) BINARY |
15 |
|
|
conv(0b1111 + 0, 10, 10) |
varchar(65) BINARY |
15 |
|
|
conv('test', 10, 2) |
varchar(65) BINARY |
0 |
|
|
conv(null, 10, 2) |
varchar(65) BINARY |
NULL |
|
|
conv(10, 10, 1) |
varchar(65) BINARY |
NULL |
|
|
| Die Beispiele wurden mit dem MyWAY SQL-Manager erstellt: | Verwendung der CONV() Funktion in MySQL und MariaDB-Datenbanken | Die CONV()-Funktion in MySQL und MariaDB wird verwendet, um eine Zahl von einer numerischen Basis in eine andere umzuwandeln, indem der Eingabewert, die Basis des Eingabewerts und die Basis angegeben wird, in die der Wert konvertiert werden soll. Das Ergebnis wird als Zeichenfolge zurückgegeben. Dabei unterstützt die Funktion verschiedene numerische Systeme, einschließlich binär (Basis 2), oktal (Basis 8), dezimal (Basis 10) und hexadezimal (Basis 16). Die Funktion unterstützt Konvertierungen zwischen den Basen 2 bis 36 und so kann beispielsweise mit binären oder hexadezimalen Darstellungen von Daten gearbeitet werden. Es werden verschiedene Anwendungen ermöglicht, wie Basiskonvertierung, Binärdatenmanipulation, Kodierung und Dekodierung und Anzeigeformatierung. | | Weitere MySQL und MariaDB SQL Konvertierungs-Funktionen | |
| | Weitere Informationen zur SQL-Funktion CONV: und und |
|
|
|
|