MySQL 中的数学函数

数学函数:https://dev.mysql.com/doc/refman/8.0/en/mathematical-functions.html

四则运算

符号描述实例结果
+SELECT 10+313
-SELECT 10-37
*SELECT 10*330
/SELECT 10/33.3333
%, MOD取余SELECT 10 MOD 31
DIV整除SELECT 10 DIV 33

三角函数

函数描述实例结果
SIN(x)返回x的正弦值,其中 x 以弧度给出。SELECT SIN(PI()/2)1
COS(x)返回x的余弦值,其中 x 以弧度给出。SELECT COS(PI()/4)0.7071
TAN(x)返回x的正切值,其中 x 以弧度给出。SELECT TAN(PI()/3)1.7320
DEGREES(x)返回x从弧度转换为度数的参数。SELECT DEGREES(PI())180
ASIN(X)返回反正弦值x,结果x以弧度给出。若X不在-1到1范围内,则返回空SELECT ASIN(1)1.5707
ACOS(X)返回反余弦值x,结果x以弧度给出。若X不在-1到1范围内,则返回空SELECT ACOS(1)0
ATAN(X)返回反正切值x,结果x以弧度给出。SELECT ATAN(1)0.7853

指数对数

函数描述实例结果
SQRT(n)n的平方根SELECT SQRT(3)1.7320
EXP(n)自然底数e的n次方SELECT EXP(1)0.7071
POW(a, n)a的n次方SELECT POW(5, 3)125
LN(n)以e为底n的对数SELECT LN(5)1.6094
LOG2(n)以2为底n的对数SELECT LOG2(8)3
LOG10(n)以10为底n的对数SELECT LOG2(100)2
LOG(a, n)以a为底n的对数。若参数只有一个,默认以e为底SELECT LOG(2, 64)6

数学函数

函数描述实例结果
ABS(n)绝对值SELECT ABS(-12)12
RAND()随机数SELECT RAND()
SIGN(n)根据是负数、零还是正数 。将参数的符号返回为-1、0或1SELECT SIGN(-12)-1
MOD(m, n)m除以n的余数SELECT MOD(13, 5)3
ROUND(x, n)将参数x四舍五入到n个小数位SELECT ROUND(12.288, 2)12.29
TRUNCATE(x, n)将参数x截断,保留n个小数位。如果n是0,则结果没有小数点或小数部分。 n可以为负数SELECT TRUNCATE(12.286, 2)12.28
CEIL(n)/CEILING(n)返回大于n的最小整数值,即向上取整SELECT CEIL(12.22)13
FLOOR(n)返回不大于n的最大整数值,即向下取整SELECT FLOOR(12.98)12

进制转换

函数描述实例结果
BIN(n)将十进制数n,转为二进制的形式SELECT BIN(15)1111
OCT(n)将十进制数n,转为八进制的形式SELECT OCT(15)17
HEX(n)将十进制数n,转为十六进制的形式SELECT HEX(13)d

在运用上述函数时,可以加以下前缀符:0b(二进制),0x(十六进制)。(在python中0o代表八进制,但mysql无法识别)
例如:
SELECT HEX(0b101001) 将二进制数101001,转为十六进制,结果为29
SELECT BIN(0x3D) 将十六进制数3D,转为二进制,结果为111101

还有一个综合型的。CONV(str, base, N)
将字符串str由base进制转为N进制。
基数base最小为2,最大为36。如果base是负数,N则视为有符号数。否则,N被视为无符号。CONV()以 64 位精度工作。

-- 二进制转为十进制,结果是:15
SELECT CONV('1111',2,10)

-- 十六进制转为二进制,结果是:1010
SELECT CONV('a',16,2);

-- 十六进制转为八进制,结果是:156
SELECT CONV('6E',16,8);

-- 二进制转为十进制,结果是:51
SELECT CONV('110011',2,10);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值