一.数学函数
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();