首页 > 技术文章 > Mysql常见函数

enoch-m 2020-03-21 16:01 原文

#常见函数
/*
调用:select 函数名(实参列表) [from 表];
特点:1.叫什么(函数名)2。干什么(函数功能)

分类:
1.单行函数
如 concat, length, ifnull等
2.多行函数
功能:做统计使用,又称为统计函数,聚合函数,组函数

*/

字符函数:

#length
SELECT LENGTH("Enoch"); #返回5
SELECT LENGTH("伊诺克"); #返回9
SHOW VARIABLES LIKE '%char%';

#concat拼接字符串
SELECT CONCAT(last_name,' ',first_name) FROM employees;

#upper lower
SELECT UPPER('Enoch');
SELECT CONCAT(UPPER(last_name),' ',LOWER(first_name)) FROM employees;

#substr substring
注意,索引从1开始
#截取从指定索引处后面所有字符
SELECT SUBSTR('阿珍爱上了阿强',1) out_put;
SELECT SUBSTR('阿珍爱上了阿强',1,3) out_put;

#姓名首字符大写,其他字符小写然后用_拼接,显示出来
SELECT CONCAT(UPPER(SUBSTR(last_name,1,1)),'_',LOWER(SUBSTR(last_name,2))) out_put FROM employees;

#instr 返回子串第一次出现的索引,没有返回0
SELECT INSTR('阿珍爱上了阿强','阿强') AS out_put;

#trim 去掉空格 去的是前后空格,也可以指定去除什么字符
SELECT TRIM(' 阿强 ') AS out_put;
SELECT TRIM('a' FROM 'aaaaaaaa阿aaa强aaaaaaaaaa') AS out_put;

#lpad 用指定字符填充总长度,超过了的话会从右边截断
SELECT LPAD('阿珍',10,'*') out_put;

#replace
SELECT REPLACE('阿珍爱上了阿强','阿珍','阿强') out_put; #替换后:阿强爱上了阿强


数学函数:
#round 四舍五入
SELECT ROUND(4.5);
SELECT ROUND(1.567,2) #1.57

#ceil向上取整
SELECT CEIL(1.002) #2

#floor向下取整
SELECT FLOOR(9.99) #9

#truncate 截断
SELECT TRUNCATE(1.5666,1) # 1.5

#mod取余
SELECT MOD(10,3)
SELECT MOD(-10,3) 结果为-1
SELECT MOD(10,-3) 结果为1

日期函数:
#now 返回当前系统日期+时间
SELECT NOW();
#curdate 返回当前系统日期,不包含时间
SELECT CURDATE();
#curtime 返回当前系统时间,不包含日期
SELECT CURTIME();
#可以获取指定的部分,年,月,日等
SELECT YEAR(NOW()) 年;
SELECT YEAR(hiredate) 年 FROM employees;

#str_to_date 将日期格式的字符转换成指定格式的日期
/*
%Y:四位的年份
%y:2位的年份
%m:月份 01,02,03,04...
%c:月份 1,2,3,4...
%d:日 01,02...
%H:小时(24小时制)
%h:小时(12小时制)
%i:分钟(00,01,...59)
%s:秒(00,01,...59)
*/
SELECT STR_TO_DATE('1998-3-2','%Y-%c-%d') AS out_put;

#date_formate 将日期转换成字符

SELECT DATE_FORMAT(NOW(),'%y年%m月%d日');

推荐阅读