CONV
声明
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参数仅支持十进制 int 类型输入,且取值范围为 [-36, -2] U [2, 36]。
非法输入将导致报错,其中非法输入包括以下情况:
-
from_base或者to_base不是一个合法的十进制 int 类 型输入; -
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]。
示例
SELECT CONV(9223372036854775807,10,2);
+-----------------------------------------------------------------+
| CONV(9223372036854775807,10,2) |
+-----------------------------------------------------------------+
| 111111111111111111111111111111111111111111111111111111111111111 |
+-----------------------------------------------------------------+
1 row in set (0.001 sec)
SELECT CONV('-acc',21,-7);
+--------------------+
| CONV('-acc',21,-7) |
+--------------------+
| -16425 |
+--------------------+
1 row in set (0.001 sec)