#字符串函数
contact('字符串1', '字符串2');字符串拼接
SELECT concat('hello', 'world');
LOWER转小写
LOWER('值')
SELECT LOWER('WORD');
UPPER转大写
UPPER('值')
SELECT UPPER('word');
LPAD左填充
LPAD('操作的字符串', 填充几位, '拿什么填充');
SELECT LPAD('01', 5, '-');
RPAD右填充
RPAD('操作的字符串', 填充几位, '拿什么填充');
SELECT RPAD('01', 5, '-');
注意:填充的结果包括01两位,一共5位 -只能填充三个
TRIM去除两边空格
SELECT TRIM(' 1 2 3 ');
SUBSTRING字符串截取
SUBSTRING('字符串', 起始位置从1开始不是0, 截取几个);
SELECT SUBSTRING('HELLO MYSQL', 1, 5);
#数值函数
ceil(值)向上取整
SELECT ceil(1.5);
floor(值)向下取整;
SELECT floor(1.5);
mod(值1%值2);取模
SELECT mod(2%1);
rand()得到的是0~1之间的随机数
SELECT rand();
round(值, 几位小数)四舍五入
SELECT round(2.34, 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(NOW(), 2024-10-01);
注意:前面的时间最好是大于后面的时间 不然会得负数
#流程控制函数
IF(value, t, f);如果value位true, 则返回t 否则返回f
SELECT IF(true, 'OK', 'ERROT');
IFNULL(value1, value2);如果value不为空返回value1,否则返回value2
SELECT IFNULL('OK', 'DEFAULT');
注意:数据库里面只有NUll 才是空, 空字符串不算
CASE 字段名 WHEN 值 THEN 值 WHEN 值 THEN 值 ELSE 值 END
SELECT
name, CASE workaddress WHEN '北京' THEN '一线城市' WHEN '上海' THEN '一线城市' ELSE '二线城市' END
FROM tp_emp;
SELECT
NAME, CASE SUM(math, english, chinese) AS '成绩'
WHEN >= 85 THEN '优秀'
WHEN >= 60 THEN '及格' ELSE '不及格' END FROM tp_student;