![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/82bfb437364e404c88893b499c878494.png)
一、字符串函数
函数 | 功能 |
---|
CONCAT(S1,S2,…,Sn) | 字符串拼接 |
LOWER(str) | 转小写 |
UPPER(str) | 转大写 |
LPAD(str,n,pad) | 左填充,用字符串pad对str左边进行填充,达到n个字符串的长度 |
RPAD(str,n,pad) | 右填充,用字符串pad对str右边进行填充,达到n个字符串的长度 |
TRIM(str) | 去掉字符串头尾空格 |
SUBSTRING(str,start,len) | 返回字符串str从start位置起len个长度的字符串 |
二、数值函数
函数 | 功能 |
---|
CEIL(x) | 向上取整 |
FLOOR(x) | 向下取整 |
MOD(x, y) | 返回x/y的余数 |
RAND() | 返回0~1之内的随机数 |
ROUND(x, y) | 求x四舍五入的值,保留y位小数 |
生成6为位随机验证码
SELECT RPAD(ROUND(RAND() * 100000, 0),6,0)
三、日期函数
函数 | 功能 |
---|
CURDATE() | 返回当前日期 |
CURTIME() | 返回当前时间 |
NOW() | 返回当前日期和时间 |
YEAR(date) | 返回date的年份 |
MONTH(date) | 返回date的月份 |
DAY(date) | 获取指定date的日期 |
DATE_ADD(date,INTERVAL expr type) | 返回间隔之后的日期时间,expr表示间隔多少,type表示间隔的类型 YEAR MONTH DAY |
DATEDIFF(date1, date2) | 返回日期间隔的天数 |
SELECT CURDATE();
SELECT CURTIME();
SELECT NOW();
SELECT YEAR(NOW());
SELECT MONTH(NOW());
SELECT DAY(NOW());
SELECT DATE_ADD(NOW(), INTERVAL 5 DAY);
SELECT DATEDIFF(CURDATE(), '2024-08-01');
四、流程函数
函数 | 功能 |
---|
IF(value, t, f) | 如果value=true返回t,否则返回f |
IFNULL(value1, value2) | 如果value1不为NULL返回value1,否则返回value2 |
CASE WHEN [val1] THEN [res1] … ELSE [default] END | 如果val1为true,返回res1,… 否则返回default默认值 |
CASE [expr] WHEN [val1] THEN [res1] … ELSE [default] END | 如果expr的值等于val1,返回res1否则返回default默认值 |
SELECT IF(TRUE,'test1','test2');
SELECT IF(FALSE,'test1','test2');
SELECT IFNULL('', 'default');
SELECT IFNULL(NULL, 'default');
SELECT IFNULL('张三', 'default');
SELECT `name`, CASE WHEN gender='0' THEN '女' WHEN gender='1' THEN '男' ELSE '未知' END '年龄' FROM tb_user;
SELECT `name`, CASE gender WHEN '0' THEN '女' WHEN '1' THEN '男' ELSE '未知' END AS '年龄' FROM tb_user;