function
NinGoo's blog

MySQL的conv函数

继续学习MySQL,这篇记录下conv函数。conv函数用于数字的进制转换,共有三个参数:

CONV(N,from_base,to_base)

N是要转换的数据,from_base是原进制,to_base是目标进制。

select conv(16,10,16);
+—————-+
| conv(16,10,16) |
+—————-+
| 10 |
+—————-+
1 row in set (0.04 sec)

如果N是有符号数字,则to_base要以负数的形式提供,否则会将N当作无符号数

mysql> select conv(-16,10,16);
+——————+
| conv(-16,10,16) |
+——————+
| FFFFFFFFFFFFFFF0 |
+——————+
1 row in set (0.00 sec)

mysql> select conv(-16,10,-16);
+——————+
| conv(-16,10,-16) |
+——————+
| -10 |
+——————+
1 row in set (0.00 sec)

除了conv,还有几个特定进制转换的函数,如:

  • hex(N)相当于conv(N,10,16)
  • oct(N)相当于conv(N,10,8)
  • bin(N)相当于conv(N,10,2)

另外还有一个convert函数用于转换不同的数据类型的,不要和conv搞混淆了。