Mysql常用函数
1. 概述
函数是指一段可以直接被另一段程序调用的程序或代码。
2. 字符串函数

- concat
-- concat
select concat ('Hello',' Mysql');
SELECT concat (u.username, r.name, p.name,p.desc) FROM user u LEFT JOIN user_role ur on u.id = ur.user_id LEFT JOIN role r ON r.id = ur.role_id
LEFT JOIN role_permission rp ON r.id = rp.role_id LEFT JOIN permission p ON p.id = rp.permission_id;


- lower
-- lower
select lower('Hello');

- upper
-- upper
select UPPER('Hello');

- lpad
-- lpad
select lpad('01',5,'-');

- rpad
-- rpad
select rpad('01',5,'-');

- trim
-- trim
select trim(' Hello Mysql ');

- substring
select SUBSTRING('hello mysql',1,5);

2.1 案例




3. 数值函数

- ceil
select ceil(1.5);

- floor

- mod
select mod(3,4);

- rand
select rand();

- round
select round(2.345,2);

3.2 案例


4.日期函数

- curdate 返回当前日期
SELECT curdate();

- curtime 返回当前时间
SELECT curtime();

- now 返回当前日期和时间
SELECT now();

- year(date)返回指定date的年份
SELECT year('2023-02-01 11:01:01');

- month(date) 获取指定date的月份
SELECT month('2023-02-01 11:01:01');

- day(date)获取指定date的日期
SELECT day('2023-02-01 11:01:01');

- date_add(date,INTERVAL expr type) 返回一个日期/时间值加上一个时间间隔expr后的时间值
SELECT date_add(now(), INTERVAL 70 DAY);
SELECT date_add(now(), INTERVAL 70 MONTH);
SELECT date_add(createtime, INTERVAL 70 DAY) FROM answer;

- datediff(date1,date2) 返回起始时间date1和结束时间date2之间的天数
SELECT DATEDIFF('2021-12-01','2021-11-01');

5.流程函数

IF(value,t,f)如果value为true则返回t否则返回f
SELECT IF(true,'ok','error');

IFNULL(value1 ,value2)如果value1不为空,返回value1否则返回value2
SELECT IFNULL(null,'1');

SELECT IFNULL('','1');

SELECT IFNULL('ok','1');

3. CASE WHEN [val1] THEN [res1] ... ELSE[default] END如果val1为true,返回res1, … 否则返回default默认值
======》课程

补充案例



附录
1.Mysql课程










