常见函数
通常分为 单行函数,和多行函数
根据使用方式的不同,可分为字符函数,数学函数
日期函数
字符函数
1 length
意义:获取参数值的字节个数
1 | SELECT |
2 concat
意义:拼接字符串
1 | SELECT |
3 upper && lower
意义:全部大写或者小写
1 | SELECT |
4 substr substring
含义:索引从指定索引开始 最小为1
1 | SELECT SUBSTR('李莫愁爱上xxx',2) AS output |
输出:莫愁爱上xxx
5 instr
含义:返回字串得第一次出现得索引,如果找不到放回0
1 | SELECT |
输出:1
6 trim
含义:去掉字符串前后制定的字符
1 | SELECT |
输出:刘迪迪
7 lpad
含义:用指定的字符实现左边的字符填充
参数解释:第一个参数是源字符串。第二个参数是要填入的字符串长度,第三个参数就是填充的字符串
1 | SELECT |
输出:1313131313131322
8 rpad
含义:用制定的字符实现右边的字符填充 与7相同
1 | SELECT |
9 replace
含义:替换指定字符,
参数解释:第一个参数:源字符串,第二个参数,第二个字符串是源字符串中的字串,第三个字符串是要替换的字符串
1 | SELECT |
输出:周芷若爱上张无忌
数学函数
1 round
含义:四舍五入,
参数解释:
一个参数的是直接对这个数进行四舍五入,
二个参数中第一个参数就是原目标数,第二个参数就是四舍五入要保留多少位有效数字
1 | SELECT ROUND(12.2) |
输出:
第一个输出为:12
第二个输出为:12.23
2 ceil
含义: 向上取整
1 | SELECT CEIL(123.00) |
3 floor
含义:向下取整 向数学中的值比较小进行取整,而不是绝对值
1 | SELECT FLOOR(123.2) |
4 truncat
含义:截断数字的串
1 | SELECT TRUNCATE(1.62345,1);# 小数点后保留1位 |
输出:1.6
5.mod
含义:取余 mod(a,b) a-a/b*b
参数解释:
第一个参数就是除数
第二个参数就是被除数
1 | SELECT MOD(10,-3) |
输出
第一个输出:1
第二个输出:1
第三个输出:-1
第四个输出:-1
最终结果符号:只与第一个参数有关
日期函数
1 date
1 | SELECT DATE(200811) # 输出 2020-08-11 |
2 now
1 | # now 放回当前系统日期 |
3 curdate
1 | # curdate 返回当前系统日期,不包含时间 |
4 curtime
1 | # curtime 返回当前时间 不包含日期 |
5 year
1 |
|
输出:
|年|
|2020|
1 | SELECT YEAR('1998-1-1') AS 年 |
输出 1998
1 | SELECT YEAR(hiredate) AS 年 |
输出
年
1992
1992
6Month
1 | # 输出月份 |
输出:5
7 Monthname
1 | # 输出月份的英文名 |
输出
月 |
---|
2020 |
8 str_to_date
1 | # str_to_date 将日期格式的字符转换成指定格式 |
输出:2020-01-10

详细例子
1 查询入职日期为1999-4-3的员工信息
1 | SELECT |
输出:
employee_id | first_name | last_name | phone_number | job_id | salary | commission_pct | manager_id | department_id | hiredate | |
---|---|---|---|---|---|---|---|---|---|---|
100 | Steven | K_ing | SKING | 515.123.4567 | AD_PRES | 24000 | 90 | ###### | ||
101 | Neena | Kochhar | NKOCHHAR | 515.123.4568 | AD_VP | 17000 | 100 | 90 | ###### |
2 查询日期格式为 4-3 1999
1 | SELECT |
输出
employee_id | first_name | last_name | phone_number | job_id | salary | commission_pct | manager_id | department_id | hiredate | |
---|---|---|---|---|---|---|---|---|---|---|
105 | David | Austin | DAUSTIN | 590.423.4569 | IT_PROG | 4800 | 103 | 60 | ###### | |
106 | Valli | Pataballa | VPATABAL | 590.423.4560 | IT_PROG | 4800 | 103 | 60 | ###### |
9 date_format
1 | # date_format 将日期转换成字符 |
例子
1 | # 查询有奖金的员工和入职日期(xx月/xx日 xx年) |
输出
last_name | date_format(hiredate,’%m月/%d日 %y年’) | ||||||||
---|---|---|---|---|---|---|---|---|---|
Russell | 12月/23日 02年 | ||||||||
Partners | 12月/23日 02年 |
其他函数
1 | # 其他函数 |
流程控制函数
1 if
1 | SELECT IF(10 > 5,'大','小') # 输出为大 |
2 case
1 | /* |