ITPub博客

首页 > 数据库 > MySQL > MySQL 数字函数大全

MySQL 数字函数大全

原创 MySQL 作者:神谕丶 时间:2015-10-09 12:56:08 0 删除 编辑
以下内容基于MySQL 5.6及更高,大部分函数5.5也基本适用,更低版本请参考对应版本手册,其内容整理自官方。

mysql常用函数被分为五类,分别为:

①Numeric:数字函数;

②String:字符串函数;
http://blog.itpub.net/29773961/viewspace-1813545/

③Date and time:日期和时间;
http://blog.itpub.net/29773961/viewspace-1808967/

④Control Flow:基于一个表达式的结果集选择不同的值(控制流函数);
http://blog.itpub.net/29773961/viewspace-1813557/

⑤Aggregate:基于一列的多个值返回单一值(聚合函数);
http://blog.itpub.net/29773961/viewspace-1813589/

【Numeric
】:
ABS():返回绝对值
  1. mysql> SELECT ABS(-22), ABS(0), ABS(33);
  2. +----------+--------+---------+
  3. | ABS(-22) | ABS(0) | ABS(33) |
  4. +----------+--------+---------+
  5. | 22       | 0      | 33      |
  6. +----------+--------+---------+
  7. 1 row in set (0.00 sec)


ACOS():返回arccos


ASIN():返回arcsin


ATAN():返回arctan


CEIL()与CEILING():向上取整
  1. mysql> SELECT CEIL(-1.2), CEIL(1.8), CEILING(0.4), CEILING(0.8);
  2. +------------+-----------+--------------+--------------+
  3. | CEIL(-1.2) | CEIL(1.8) | CEILING(0.4) | CEILING(0.8) |
  4. +------------+-----------+--------------+--------------+
  5. | -1         | 2         | 1            | 1            |
  6. +------------+-----------+--------------+--------------+
  7. 1 row in set (0.00 sec)


CONV():不同进制的转换
  1. mysql> SELECT CONV('a',16,2) 将16进制数a转换为2进制,
  2.     -> CONV('6E',18,8),
  3.     -> CONV(10+'10'+'10'+0xa,10,10);
  4. +---------------------------------+-----------------+------------------------------+
  5. | 将16进制数a转换为2进制            | CONV('6E',18,8) | CONV(10+'10'+'10'+0xa,10,10) |
  6. +---------------------------------+-----------------+------------------------------+
  7. | 1010                            | 172             | 40                           |
  8. +---------------------------------+-----------------+------------------------------+
  9. 1 row in set (0.00 sec)


COS():返回余弦值


COT():返回余切值


CRC32():返回循环冗余校验值


DEGREES():将弧度变为角度
  1. mysql> SELECT DEGREES(PI());
  2. +---------------+
  3. | DEGREES(PI()) |
  4. +---------------+
  5. | 180            
  6. +---------------+
  7. 1 row in set (0.01 sec)


EXP():返回以e为底的某次方的值


FLOOR():返回最大不超过表达式的整数
  1. mysql> SELECT FLOOR(1.34), FLOOR(-0.1112), FLOOR(2.56);
  2. +-------------+----------------+-------------+
  3. | FLOOR(1.34) | FLOOR(-0.1112) | FLOOR(2.56) |
  4. +-------------+----------------+-------------+
  5. | 1           | -1             | 2           |
  6. +-------------+----------------+-------------+
  7. 1 row in set (0.00 sec)


LN():返回log以e为底,某指的对数


LOG10():返回log以10为底,某值的对数


LOG2():返回log以2为底,某值的对数


LOG(expr1,expr2):返回以expr1为底数,expr2值的对数


MOD(expr1,expr2):返回expr1模expr2的值。


PI():返回π的值


POW(expr1,expr2)与POWER(expr1,expr2):返回expr1的expr2次方的值
  1. mysql> SELECT POW(1,99), POWER(1,99),
  2.     -> POW(2,10), POWER(-2,5);
  3. +-----------+-------------+-----------+-------------+
  4. | POW(1,99) | POWER(1,99) | POW(2,10) | POWER(-2,5) |
  5. +-----------+-------------+-----------+-------------+
  6. | 1         | 1           | 1024      | -32         |
  7. +-----------+-------------+-----------+-------------+
  8. 1 row in set (0.02 sec)


RADIANS():将角度变为弧度
  1. mysql> SELECT RADIANS(180);
  2. +-------------------+
  3. | RADIANS(180)      |
  4. +-------------------+
  5. | 3.141592653589793 |
  6. +-------------------+
  7. 1 row in set (0.00 sec)


RAND():返回一个浮点随机数(0~1开区间)
  1. mysql> SELECT RAND();
  2. +--------------------+
  3. | rand()             |
  4. +--------------------+
  5. | 0.7237686484342148 |
  6. +--------------------+
  7. 1 row in set (0.00 sec)


ROUND():将某值四舍五入
  1. mysql> SELECT ROUND(PI()), ROUND(-2.333), ROUND(-2.7666), ROUND(3.611);
  2. +-------------+---------------+----------------+--------------+
  3. | ROUND(PI()) | ROUND(-2.333) | ROUND(-2.7666) | ROUND(3.611) |
  4. +-------------+---------------+----------------+--------------+
  5. | 3           | -2            | -3             | 4            |
  6. +-------------+---------------+----------------+--------------+
  7. 1 row in set (0.00 sec)


SIGN():返回正负(-1=负值,0=零,1=正值)
  1. mysql> SELECT SIGN(-3.14), SIGN(0), SIGN(22.1)
  2.     -> ;
  3. +-------------+---------+------------+
  4. | SIGN(-3.14) | SIGN(0) | SIGN(22.1) |
  5. +-------------+---------+------------+
  6. | -1          | 0       | 1          |
  7. +-------------+---------+------------+
  8. 1 row in set (0.00 sec)


SIN():返回正弦值


SQRT():将某值开平方(当然用POW(expr1,1/2)也可以)
  1. mysql> SELECT SQRT(1024),SQRT(9);
  2. +------------+---------+
  3. | SQRT(1024) | SQRT(9) |
  4. +------------+---------+
  5. | 32         | 3       |
  6. +------------+---------+
  7. 1 row in set (0.00 sec)


TAN():返回正切值


TRUNCATE(expr1,expr2):将expr1返回以保留expr2个小数点
  1. mysql> SELECT TRUNCATE(2.111111,3);
  2. +----------------------+
  3. | TRUNCATE(2.111111,3) |
  4. +----------------------+
  5. | 2.111                |
  6. +----------------------+
  7. 1 row in set (0.00 sec)


作者公众号(持续更新)

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29773961/viewspace-1813556/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: MySQL 控制流函数
请登录后发表评论 登录
全部评论
微信公众号:神谕的暗影长廊

注册时间:2014-07-28

  • 博文量
    161
  • 访问量
    1195067