函数:是指一段可以直接被另一段程序调用的程序或代码
-- -----------------------函数演示--------------------------
-- concat
select concat('Hello','MySQL');
结果:
-- lower
select lower('HELLO');
结果:
-- upper
select upper('hello');
结果:
-- lpad
select lpad('01',5,'-')
结果:
-- rpad
select rpad('01',5,'-');
结果:
-- trim
select trim( 'Hello MySQL ')
结果:
-- substring,注意点:索引值从1开始
select substring('Hello MySQL',1,5);
结果:
-- -----------数值函数--------------
-- ceil
select ceil(1.3);
结果:
-- floor
select floor(1.8);
结果:
-- mod
select mod(3,4);
结果:
-- rand
select rand();
结果:
-- round
select round(2.345,2);
结果:
-- curdate()——返回当前日期
select curdate();
结果:
-- curtime()——返回当前时间
select curtime();
结果:
-- now()——返回当前日期和时间
select now();
结果:
-- year(date)——返回指定date的年份
select year(now());
结果:
-- month(date)——返回指定date的月份
select month(now());
结果:
-- day(date)——返回指定date的日期
select day(now());
结果:
-- date_add(date,INTERVAL expr type)——返回一个日期/时间值加上一个时间间隔expr后的时间值
select date_add(now(),INTERVAL 70 DAY);
结果:
-- datediff(date1,date2)——返回起始时间date1和结束时间date2之间的天数
select datediff('2021-10-01','2021-12-01');
结果:
-- --------------流程函数-----------------
-- IF(value,t,f)——如果value为true,则返回t,否则返回f
select if(true,'ok','error');
结果:
-- IFNULL(value1,value2)——如果value1不为空,返回value1,否则返回value2
select ifnull(null,'yes');
结果:
-- CASE WHEN [val1] THEN [res1] ... ELSE [default] END——如果val1为true,返回res1,...,否则返回default默认值
-- 需求:查询emp表的员工姓名和年龄(age < 18 ---> 未成年,其他 ---> 成年)
select name,age,case when (emp.age < 18) then '未成年' else '成年' end from emp;
结果:
-- CASE [expr] WHEN [val1] THEN [res1] ... ELSE [default] END——如果expr的值为val1,返回res1,...,否则返回default默认值
select case 123 when 123 then 2 else 5 end;
结果: