跳到主要内容

CONV

声明

CONV(N, from_base, to_base)

说明

不同数基间转换数字。返回值为一个字符串,由 from_base 基转化为 to_base 基。

  • 输入参数 N 可以是一个整数或字符串。最小基数为 2,而最大基数为 36。如果 to_base 是一个负数,则 N 被看作一个带符号数。否则,N 被看作无符号数。

  • from_base 如果是负数,则被当作整数处理,符号被忽略。

  • N 参数仅支持 int 类型和字符串类型输入。

  • from_baseto_base 参数仅支持十进制 int 类型输入,且取值范围为 [-36, -2] U [2, 36]。

非法输入将导致报错,其中非法输入包括以下情况:

  • from_base 或者 to_base 不是一个合法的十进制 int 类型输入;

  • from_base 或者 to_base 超出 [-36,-2] ∪ [2,36] 的取值范围;

  • N 不是一个合法的数字表示,例如取值超出 09azAZ 的字符范围;

  • 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)