CONV
📄字数 517
👁️阅读量 加载中...
功能描述
在不同数字进制之间转换数字。
语法格式
sql
CONV(expr, from_base, to_base)
输入参数
expr
:被转换的数据,VARCHAR
类型或者能隐式转换为VARCHAR
类型的其他类型的值或者表达式。from_base
:原进制,TINYINT
类型;若from_base
为负数,则expr
被视为有符号数,否则视为无符号数,输入取值范围(整数)为[-36,-2]U[2, 36]
。to_base
:要转换的进制,TINYINT
类型,取值范围(整数)为[-36,-2]U[2, 36]
。
提示
- 当输入参数中包含数字字符和其他字符时,函数内部仅计算字符串头部的数字字符,如
CONV('255Hello',10,16)
等效于CONV('255',10,16)
,输出结果为FF
。
输出结果
输出结果为 VARCHAR
类型(精度最大64),任意输入参数为 NULL
或者进制取值超出取值范围,则输出结果为 NULL
。
示例
sql
-- 20从10进制转换为16进制
SQL> SELECT CONV('20',10, 16);
+-------+
| EXPR1 |
+-------+
| 14 |
+-------+
-- 'a'从16进制转换为2进制
SQL> SELECT CONV('a',16,2);
+-------+
| EXPR1 |
+-------+
| 1010 |
+-------+
-- '6E'从18进制转换为8进制
SQL> SELECT CONV('6E',18,8);
+-------+
| EXPR1 |
+-------+
| 172 |
+-------+
-- -17从10进制转换为-18进制
SQL> SELECT CONV(-17,10,-18);
+-------+
| EXPR1 |
+-------+
| -H |
+-------+