宣言
CONV(N, from_base, to_base)
説明
異なる基数間で数値を変換します。戻り値は文字列であり、from_base の基数から to_base の基数へと変換されます。
入力パラメータ
Nは整数または文字列です。最小基数は2で、最大基数は36です。to_baseが負の数の場合、Nは符号付き数として扱われます。それ以外の場合、Nは符号なし数として扱われます。from_baseが負の数の場合、整数として処理され、符号は無視されます。Nパラメータはint型と文字列型の入力のみをサポートします。from_baseおよびto_baseパラメータは、10進整数型の入力のみをサポートし、その値の範囲は [-36, -2] U [2, 36] です。
不正な入力はエラーを引き起こします。不正な入力には以下のようなものが含まれます:
from_baseまたはto_baseが有効な10進整数型ではない場合。from_baseまたはto_baseが [-36,-2] ∪ [2,36] の値の範囲を超えている場合。Nが有効な数値表現ではない場合。例えば、値が0~9、a~z、A~Zの文字範囲を超えている場合。Nがfrom_baseの値の範囲を超えている場合。例えば、from_baseが2で、Nの値が3の場合。Nの値がBIGINTの最大表現範囲、すなわち [-9223372036854775807, 9223372036854775807] を超えている場合。
例
obclient> SELECT CONV(9223372036854775807,10,2);
+-----------------------------------------------------------------+
| CONV(9223372036854775807,10,2) |
+-----------------------------------------------------------------+
| 111111111111111111111111111111111111111111111111111111111111111 |
+-----------------------------------------------------------------+
1 row in set
obclient> SELECT CONV('-acc',21,-7);
+--------------------+
| CONV('-acc',21,-7) |
+--------------------+
| -16425 |
+--------------------+
1 row in set