一、字符函数
1、CONCAT 拼接函数
CONCAT(str1,str2,...)
2、LENGTH 获取字节长度
PS:字节以及字符与编码方式(ASCII、UTF-8等)有关
LENGTH(str) 举例: SELECT LENGTH(‘SS‘); 查询结果为2
3、CHAR_LENGTH 获取字符长度
CHAR_LENGTH(str) 举例: SELECT CHAR_LEGTH(‘SS‘); 结果为2
4、SUBSTRING 截取子串
(1)SUBSTR(str,pos) --从pos位置开始,一直截取到最后,字符第一位索引为1 举例: SELECT SUBSTR(‘ssasdf‘,2); 查询结果为sasdf (2)SUBSTR(str,pos,len) --从pos位置开始,截取len个字符 举例: SELECT SUBSTR(‘ssasdf‘,2,2); 查询结果为sa (3)SUBSTR(str FROM pos) --从pos位置开始截取 举例: SELECT SUBSTR(‘ssasdf‘ FROM 4); 查询结果为sdf (4)SUBSTR(str FROM pos FOR len) --从pos位置开始截取len个字符 举例: SELECT(‘ssasdf‘ FROM 2 FOR 3)
查询结果为sas
5、INSTR 获取子字符串第一次出现的索引
INSTR(str,substr) 举例: INSTR(‘ssasdf‘,‘a‘); 查询结果为3
6、TRIM 去除前后指定的字符,默认是去除空格
TRIM([remstr FROM] str) 举例: SELECT TRIM(‘s‘ from ‘ssasdf‘); 查询结果为asdf
7、LPAD/RPAD 左填充/右填充函数
LPAD(str,len,padstr) --str是第一个字符串,len是结果字符串的长度,padstr是一个填充字符串。如果str的长度没有len那么长,则使用padstr左填充;如果str的长度大于len,则截断;RPAD同理 RPAD(str,len,padstr) 举例: SELECT LPAD(‘asdfg‘,10,‘o‘); 查询结果为oooooasdfg SELECT LPAD(‘asdfg‘,2,‘o‘); 查询结果为as
8、UPPER/LOWER 大写/小写函数
UPPER(str) --将str转换为大写 LOWER(str) --将str转换为小写 举例: SELECT UPPER(‘aSdfg‘); 查询结果为ASDFG SELECT LOWER(‘aSdfg‘); 查询结果为asdfg
9、STRCMP 比较大小
STRCMP(exp1,exp2) --比较两个字符串,如果这两个字符串相等返回0,如果第一个参数是根据当前的排序小于第二个参数顺序返回-1,否则返回1 举例: SELECT STRCMP(‘aaa‘,‘aaa‘); --结果为0 SELECT STRCMP(‘asdfg‘,‘aaa‘); --结果为1 SELECT STRCMP(‘asdfg‘,‘ast‘); --结果为-1
10、LEFT/RIGHT 截取子串
LEFT(str,len) RIGHT(str,len) 举例: SELECT LEFT(‘asdfg‘,10); --结果为asdfg SELECT RIGHT(‘asdfg‘,3); --结果为dfg
二、数学函数
1、ABS 绝对值
ASB(x) 举例: SELECT ABS(-100); --结果为100
2、CEIL 向上取整,返回>=该参数的最小整数
CEIL(x) 举例: SELECT CEIl(-1.5); --结果为-1 SELECT CEIl(1.5); --结果为2
3、FLOOR 向下取整,返回<=该参数的最大整数
FLOOR(x) 举例: SELECT FLOOR(-1.5); --结果为-2 SELECT FLOOR(1.5); --结果为2
4、ROUND 四舍五入
ROUND(x) -- 四舍五入 ROUND(x,D) --对x四舍五入取精确到D位小数 举例: ROUND(1.65); --结果为2 ROUND(1.567,2); --结果为1.57
5、TRUNCATE 截断
TRUNCATE(x,D) --只保留小数点后D位,不用四舍五入 举例: SELECT TRUNCATE(1.6521,1); --结果为1.6
三、日期函数
1、NOW()/CURRENT_TIMESTAMP() 返回当前日期+函数
SELECT NOW();; --结果为2021-04-08 23:26:39 SELECT CURRENT_TIMESTAMP(); --结果为2021-04-08 23:28:21
2、CURDATE()/CURRENT_DATE() 返回当前日期,不含时间
SELECT CURDATE(); --结果为2021-04-08 SELECT CURRENT_DATE(); --结果为2021-04-08
3、CURTIME()/CURRENT_TIME() 返回当前时间,不含日期
SELECT CURTIME(); --结果为23:49:43 SELECT CURRENT_TIME(); --结果为23:49:43
4、DATEDIFF 日期1-日期2
DATEDIFF(exp1,exp2) 举例: SELECT DATEDIFF(‘2020-01-10‘,‘2021-01-01‘); --结果为-357
5、DATE_FORMAT 日期转换函数
PS:日期转换格式有很多中,后面会讲到
DATE_FORMAT(date,format) 举例: SELECT DATE_FORMAT(‘2020-01-10‘,‘%Y年%m月%d日‘); --结果为2020年01月10日
6、STR_TO_DATE 按指定格式解析字符串为日期类型
STR_TO_DATE(str,format) 举例: SELECT STR_TO_DATE(‘01-10-2020‘,‘%m-%d-%Y‘); --结果为2020-01-10
原文:https://www.cnblogs.com/yongzhao/p/14635462.html