目录
[返回一个日期/时间 在加上一个时间间隔expr 后的时间值](#返回一个日期/时间 在加上一个时间间隔expr 后的时间值)
[CASE WHEN val1 THEN res1 ... ELSE default END 函数](#CASE WHEN [val1] THEN [res1] ... ELSE [default] END 函数)
[CASE expr WHEN val1 THEN res1 ... ELSE default END 函数](#CASE [expr] WHEN [val1] THEN [res1] ... ELSE [default] END 函数)
函数 是指一段可以直接被另一端程序调用的程序或代码。
这段程序或者代码,其实已经在mysql程序中已经内置了。我们要做的就是调用这些内置的函数,去完成我们的业务需求。
常用字符串函数

字符串拼接:
select concat(S1,S2,...Sn);

字符串转小写:
select lower(字符串);

字符串转大写:
select upper(字符串);

左填充:
select lpad(字符串,总长度,要填充的内容)
一般情况:

特殊情况:因为总长度规定是5,good 加上 X 就达到5了,那么后面的 boy就被舍弃了。

右填充:
select rpad(字符串,总长度,要填充的内容);
一般情况:

特殊情况:和左填充同理

去掉字符串前后空格:
select trim(字符串)
注意:字符串中间的空格不会被去除

返回一个字符串中指定范围的内容:
select substring(字符串,开始下标,截取字符的个数);

常用数值函数

向上取整
select ceil(任意数值);
举例一:

举例二:

举例三:

举例四:

向下取整
select floor(任意数值);
举例一:

举例二:

举例三:

取模,也就是余数
select mod(任意数值1,任意数值2);
举例一:

举例二:

举例三:

0-1的随机数
select rand();
四舍五入,并保留指定位数小数位
select round(任意数值,小数位);
举例一:

举例二:

常用时间函数

返回当前日期
select curdate();
返回的时间格式为:年-月-日

返回当前时间
select curtime();
返回的时间格式为:时-分-秒

返回当前日期与时间
select now();
返回时间格式为:年-月-日 时-分-秒

返回当前指定时间的年份
select year(指定的时间);

返回当前指定时间的月份
select month(指定的时间);

返回当前指定时间的日期
select day(指定的时间);

返回一个日期/时间 在加上一个时间间隔expr 后的时间值
select date_add(指定时间,interval expr type);
interval 是固定格式
expr 是用户指定的具体时间数值
type 是 时间类型单位 例如:年,月, 日 ,秒等
举例一:往后推移10天

举例二:往后推移10年

起始时间与结束时间之间的天数
select datediff(开始时间,结束时间);
注意:该函数是使用第一个时间 减去 第二个时间得到的结果
也就是 开始时间 - 结束时间
举例一:

举例二:

常用流程函数
流程函数也是很常用的一类函数,可以在SQL语句中实现条件筛选,从而提高语句的效率。

IF函数
select if(条件表达式,任意值1,任意值2)
举例一:

举例二:

IFNULL函数
select ifnull(值1,值2)
举例一:

举例二:

CASE WHEN val1 THEN res1 ... ELSE default END 函数
select
字段一,
字段二,
case when 条件表达式
then 输出的结果
...
case when 条件表达式
then 输出的结果
else 以上所有的case when条件都不满足时,将会输出else中的结果
end
from table;
学过Java的同学就会发现,这就是Java中的if ... else if ... else

CASE expr WHEN val1 THEN res1 ... ELSE default END 函数
select
字段一,
字段二,
case 任意值1
when 任意值2
then 输出的结果
...
case when 条件表达式
then 输出的结果
else 以上所有的case when条件都不满足时,将会输出else中的结果
end
from table;
学过Java的同学就会发现,这就是Java中的switch
