- ABS:绝对值,例如:Select ABS(-100),结果为:100。
- ROUND:四舍五入(精确到后两位:先对数据乘100,再除100),例如:Select ROUND(3.1871*100)/100,结果为:3.1900。
- FLOOR:强制舍位到最近的整数,例如:Select FLOOR(9.9),结果为:9。
- CEIL:强制进位到最近的整数,例如:CEIL(3.1),结果为:4。
- LOG:对数函数,例如:SELECT LOG(8,2),结果为3。
- LN:对数函数,例如:SELECT LN(10),结果为:2.30258509。
- POWER:指数函数,例如:SELECT POWER(2,3),结果为:8。
- SQRT:开平方,例如:SQRT(9)。
- PI:圆周率,例如:PI()。
- SIN:三角函数,例如:SIN(1)。
- COS:三角函数,例如:COS(1).
- TAN:三角函数,例如:TAN(2).
- COT:三角函数,例如:COT(1)
- RADIANS:角度转换弧度,例如:RADIANS(30)。
- DEGREES:弧度转换角度,例如:DEGREES(1)。
日期函数: - Now():获取当前系统的日期和时间,格式为yyyy-MM-dd hh:mm:ss,例如:Now()。
- CURDATE()函数能获得当前系统日期,格式为yyyy-MM-dd。例如: CURDATE();
- CURTIME()函数能获得当前的系统时间,格式为hh:mm:ss。例如:CURTIME();
- DATE_FORMAT()函数用于格式日期,返回用户想要的日期格式。例如:DATE_FORMAT(日期,表达式);查询员工入职的年份:SELECT ename,DATE_FORMAT(hiredate,“%Y”) From t_emp;
占位符 | 作用 |
%Y | 年份 |
%d | 日期 |
%W | 星期(名称) |
%U | 本年第几周 |
%h | 小时(12) |
%s | 秒 |
%T | 时间(24) |
%m | 月份 |
%w | 星期(数字)0:代表周日 |
%j | 本年第几天 |
%H | 小时(24) |
%r | 时间(12) |
%i | 分钟 |
【例如】1、统计2022年上半年人数:
SELECT
count(*)
FROM
training_user
WHERE
DATE_FORMAT(gmt_create ,"%Y") = 2022
and DATE_FORMAT(gmt_modified,"%m")<=6;
日期偏移计算
- DATE_ADD()函数可以实现日期的偏移计算,而且时间单位比较灵活。
`DATE_ADD(日期,INTERVAL 偏移量 时间单位)`
SELECT DATE_ADD(NOW(),INTERVAL 15 DAY)//从当前日期偏移15天
SELECT DATE_ADD(NOW(),INTERVAL -300 MINUTE)//300分钟之前的日期
SELECT DATE_ADD(DATE_ADD(NOW(),INTERVAL -3 MONTH), INTERVAL 3 DAY);//偏移3个月3天
SELECT
DATE_FORMAT(
DATE_ADD(
DATE_ADD(NOW(), INTERVAL - 3 MONTH),
INTERVAL 3 DAY
),"%Y/%m/%d");//返回日期格式
计算日期之间差了多少天:DATEDIFF()函数
DATEDIFF(日期,日期);
SELECT DATEDIFF("2022-6-29","2022-5-29");//31天
字符函数
- LOWER:转换小写字符;例如:LOWER(enname);
- UPPER:转换大写字符,例如:UPPER(enname);
- LENGTH:字符数量;LENGTH(enname);
- CONCAT:连接字符串;例如:CONCAT(sal,“$”);
- INSTR:字符出现的位置,例如:INSERT(enname,“A”);
- INSERT:插入/替换字符;例如:INSERT(“你好”,1,0,“先生”);
- PEPLACE:替换字符,例如:PEPLACE(“你好先生”,“先生”,“女士”)
- SUBSTR:截取字符串;例如:SUBSTR(“你好世界”,1,2);1:代表截取开始的位置,2:代表结束的位置,得到结果为:“你好”。
- SUBSTRING:截取字符串,例如:SUBSTRING(“你好世界”,2,1);2:代表开始位置,1:代表往后截取一个字符,结果为:“好”
- LPAD:左填充字符串;例如:LPAD(“Hello”,10,“*”);
- RPAD:右填充字符串;例如:RPAD(“Hello”,10,“*”);
- TRIM:去除首尾空格;例如:TRIM(" 你好先生 ");
- 例如:
SELECT LPAD(SUBSTRING("12356789661",9,3),11,"*");//隐藏手机号
SELECT RPAD(SUBSTRING("李晓呐",1,1),LENGTH("李晓呐")/3,"*");//隐藏名字
条件函数
14. IFNULL(表达式,值)
15. IF(表达式,值1,值2)
条件语句(比if语句功能强大)
CASE
WHEN 表达式 THEN 值1
WHEN 表达式 THEN 值2
……
ELSE 值N
END