mysql函数:
数值函数:
例子:
向上取整
select ceil(1.1);
向下取整
select floor(1.9);
取模
select mod(7, 10);
获取随机数
select rand();
四舍五入
select round(3.1415926,2);
案例:
通过数据库的函数,生成一个六位数的随机验证码
select round(rand(), 6)* 1000000;
获取随机数可以通过rand()函数,但是获取出来的随机数是在0-1之间的,所以可以在其基础
上乘以1000000,然后舍弃小数部分,如果长度不足6位,补0
select lpad(round(rand()*1000000 , 0), 6, '0');
日期函数:
当前日期:
select curdate();
当前时间
select curtime();
当前日期和时间
select now();
YEAR , MONTH , DAY:当前年、月、日
select year(now());
select month(now());
select day(now());
date_add:增加指定的时间间隔
select date_add(now(), interval 70 year);
datediff: 获取两个日期相差的天数
select datediff( '2024-7-1', '2024-5-25')
例子:
select name, datediff(curdate(), entrydate) timeE from emp order by timeE
流程函数:
作用:
可以在SQL语句中实现条件筛选,从而提高语句的效率
函数:
if
select if(false, 'ok', 'error')
ifnull
select ifnull('', '第一个值为空')
select ifnull(null, '第一个值为空')
case when then else end
select name, case workaddress when '北京' then '一线城市' when '上海' then '一线城市' else '二线城市' end from emp
select
id,
name,
(case when math >= 85 then '优秀' when math >=60 then '及格' else '不及格' end )
'数学',
(case when english >= 85 then '优秀' when english >=60 then '及格' else '不及格'
end ) '英语',
(case when chinese >= 85 then '优秀' when chinese >=60 then '及格' else '不及格'
end ) '语文'
from score;