MySQL 的 CONV(N,from_base,to_base) 函数将在不同的数字基数之间转换数字。返回数字 N 的字符串表示形式,从基础 from_base 转换为基础 to_base。如果任何参数为 NULL,则返回 NULL。参数 N 被解释为整数,但可以指定为整数或字符串。 最小基数为 2,最大基数为 36。如果 from_base 为负数,则将 N 视为有符号数。 否则,N 被视为无符号。 CONV() 以 64 位精度工作。
CONV(N,from_base,to_base)
N 要转换的字符串或者数字
from_base 源数字基数
to_base 目标数字基数
(1)使用 CONV 函数将十六进制“a”转换成二进制,如下:
mysql> select CONV('a',16,2); +----------------+ | CONV('a',16,2) | +----------------+ | 1010 | +----------------+ 1 row in set (0.03 sec)
由运行结果可知,十六进制“a”转换成二进制后为“1010”。
(2)使用 CONV 函数将十八进制“6E”转换成八进制,如下:
mysql> SELECT CONV('6E',18, 8); +-----------------+ | CONV('6E',18,8) | +-----------------+ | 172 | +-----------------+ 1 row in set (0.03 sec)
由运行结果可知,十八进制“6E”转换成八进制后为“172”。
(3)使用 CONV 函数将十进制 -17 负数转换成 -18 进制,如下:
mysql> SELECT CONV(-17,10,-18); +------------------+ | CONV(-17,10,-18) | +------------------+ | -H | +------------------+ 1 row in set (0.04 sec)
(4)使用 CONV 函数计算表达式“10+'10'+'10'+X'0a'”,然后将十进制转换成十进制,如下:
mysql> SELECT CONV(10+'10'+'10'+X'0a',10,10); +--------------------------------+ | CONV(10+'10'+'10'+X'0a',10,10) | +--------------------------------+ | 40 | +--------------------------------+ 1 row in set (0.04 sec)