目录
[返回一个日期/时间 在加上一个时间间隔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
