Mysql常用函数

一.数学函数

1.求绝对值ABS(x)

 返回x的绝对值.

SELECT ABS(-1);

 输出结果:1

2.向上/下取整CEIL(x)/FLOOR(x)
SELECT CEIL(2.3);
SELECT FLOOR(2.3);

 输出结果:3
     2

3.返回0-1随机数RAND()/ RAND(x)
SELECT RAND();

 输出结果:0.487187265
如果设置参数x,且x值不变, 获取的随机数也不变.

4.返回x的符号SIGN(x)

 负数 返回 -1
  0  返回 0
 正数 返回 1

SELECT SIGN(-42.2);

 输出结果:-1

5.返回离x最近的整数ROUND(x)
SELECT ROUND(2.2);
SELECT ROUND(2.6);
SELECT ROUND(-2.2);
SELECT ROUND(-2.8);

 输出结果:2
     3
     -2
     -3

6.余数MOD(x,y)

 返回x除以y后的余数.

SELECT MOD(5,3);

 输出结果:2

二.字符串函数

1.字符串拼接CONCAT(s1,s2,s3…)
SELECT CONCAT('aa',' b ','cc');

 输出结果:aa b cc

2.返回字符串s的位数CHAR_LENGTH(s)
SELECT CHAR_LENGTH('AAAA');

 输出结果:4

3.返回字符串s的长度LENGTH(s)
SELECT LENGTH(s);
4.替换INSERT(s1,index,len,s2)

 从index开始,将s2替换s1,替换s1中的len个位置.
注: index从1开始.

SELECT INSERT('AAAA',2,1,'BB');

 输出结果:ABBAA

5.将s转化为大写UPPER(s)/UCASE(s)
SELECT UPPER('AbcD');

 输出结果:ABCD

6.将s转化为小写LOWER(s)/LCASE(s)
SELECT LOWER('AbcD');

 输出结果:abcd

7.返回字符串s前n个字符LEFT(s)
SELECT LEFT('ABCD',2);

 输出结果:AB

8.返回字符串s后n个字符RIGHT(s)
SELECT RIGHT('ABCD',1);

 输出结果:D

9.去除s周围空格

(1) TRIM(s) : 去除两边空格
(2) LTRIM(s) : 去除左边空格
(3) RTRIM(s) : 去除右边空格

10.去除s前后字符串s1

TRIM( s1 FROM s)

SELECT TRIM('A' FROM 'AAaa');

 输出结果:aa

11.用s2取代s中的s1字符串REPLACE(s,s1,s2)
SELECT REPLACE('AABBCC','B','2');

 输出结果:AA22CC

12.字符串截取SUBSTRING(s,n,len)/MID(s,n,len)

从s的第n个位置截取len个长度.

SELECT SUBSTRING('AABBCC',1,'2');

 输出结果:AA

13.从s中获取s1的起始位置LOCATE(s1,s)/INSTR(s,s1)
SELECT LOCATE('B','AABBCC');
SELECT INSTR('AABBCC','B');

 输出结果:3

14.反转字符串REVERSE(s)
SELECT REVERSE('AABBCC');

 输出结果:CCBBAA

三.日期和时间函数

0.解析日期

 DATE_FORMAT(d, pattern)
在这里插入图片描述

1.返回当前日期

 CURRENT_DATE(); / CURDATE();

SELECT CURRENT_DATE();

 输出结果:2017-11-19

2.返回当前时间

 CURRENT_TIME(); / CURTIME();

SELECT CURRENT_TIME();

 输出结果20:55:24

3.返回当前日期和时间

 NOW(); / SYSDATE(); / LOCALTIME();

SELECT NOW();

 输出结果 2017-11-19 20:55:20

4.返回当前时间戳

 UNIX_TIMESTAMP( );

SELECT UNIX_TIMESTAMP();

 输出结果:1511096304

5.返回日期d的月份(1-12)

 MONTH(d);

SELECT MONTH( NOW() );

 输出结果11

6.返回日期d的英文月份名称

 MONTHNAME(d);

SELECT MONTHNAME( NOW() );

 输出结果November

7.返回日期d的英文星期几

 DAYNAME(d);

SELECT DAYNAME( NOW() );

 输出结果Sunday

8.返回日期d的星期几(0是星期一)

 WEEKDAY(d);

SELECT WEEKDAY( NOW() );

 输出结果:6

9.计算日期d是本年第几周(0-53)

 WEEK(d);

SELECT WEEK( NOW() );

 输出结果47

10.返回日期d的年份

 YEAR(d);

SELECT YEAR( NOW() );

 输出结果2017

11.计算日期d是第几个季度(1-4)

 QUARTER(d);

SELECT QUARTER( NOW() );

 输出结果4

12.计算d1-d2相隔的天数

 DATEDIFF(d1,d2);

SELECT DATEDIFF(NOW(),SELECT SUBDATE( NOW(),1));

 输出结果1

13.计算起始日期d减去n天的日期

 SUBDATE(d,n);

SELECT SUBDATE( NOW(), 1);

 输出结果2017-11-18 21:08:11

四.系统函数

1.返回数据库版本号

 VERSION():

2.返回服务器连接数

 CONNECTION_ID();

3.返回当前数据库名

 DATABASE();

4.返回当前用户

 CURRENT_USER();

5.返回最近生成的AUTO_INCREAMENT值

 LAST_INSERT_ID();

五.自定义函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值