SQL--函数

Harper886’s Blog / 2023-08-12 / 原文

SQL--函数

函数是什么?

函数是指一段可以直接被另一段程序调用的程序或代码。

字符串函数

image-20230811182252682

select concat('hello','mysql');
select lower('Hello');
select upper('Hello');
select lpad('01',5,'-');
select rpad('01',5,'-');
select trim('    hello mysql  ');
select substr('Hello Mysql',1,5);

注意substr中第二项中的下标从1开始,第三个参数为截取的长度

--1,由于业务需求变更,企业员工的工号,统一5位数,目前不足巧位数的全部在前面补0。比如:1号员工的工号应该00001。

update emp set workno =lpad(workno,5,'0');

数值函数

image-20230811183929138

# ceil向上取整
select ceil(1.1);
# floor向下取整
select floor(1.9);
# mod模运算
select mod(7,4);
# rand 生成0-1的随机数
select rand();
# round  四舍五入,保留y位小数
select round(1.878,2);
select round(2.345,2);
select round(2.344,2);

通过数据库的函数,生成一个六位数的随机验证码。

# 通过数据库的函数,生成一个六位数的随机验证码。
# 先生成6位随机数,如过不为6位就在前面或者后面补0
select lpad(round(rand()*1e6,0),6,'0');

日期函数

# ceil向上取整
select ceil(1.1);
# floor向下取整
select floor(1.9);
# mod模运算
select mod(7,4);
# rand 生成0-1的随机数
select rand();
# round  四舍五入,保留y位小数
select round(1.878,2);
select round(2.345,2);
select round(2.344,2);

# 通过数据库的函数,生成一个六位数的随机验证码。
# 先生成6位随机数,如过不为6位就在前面或者后面补0
select lpad(round(rand()*1e6,0),6,'0');

# 日期函数
# curdate 当前日期
select curdate();
#  curtime 当前时间
select curtime();
# now 当前的日期加时间
select now();
# year month day
select year(now());
select month(now());
select day(now());
# data_add
# 向后70天
 select date_add(now(),interval 70 day );
# 向后70月
 select date_add(now(),interval 70 month );
# 向后70年
 select date_add(now(),interval 70 year );
# datediff 两个日期之间的差值
# 前面的时间减后面的时间
select datediff('2021-10-01','2021-12-01');

--案例:查询所有员工的入职数,并根据入职天数倒序排序。

select name,datediff(curdate(),entrydate) as entrydays from emp order by entrydays desc ;