是一段可以直接被另一段程序调用的程序或代码;
1.字符串函数:
concat(S1,S2,...,Sn) 字符串拼接,将S1,S2,...,Sn拼接成一个;
lower(Str) 将字符串Str转为小写
upper(Str) 将字符串Str转为大写
lpad(Str,n,pad) 左填充,用字符串pad对Str的左边进行填充,达到n个字符串长度
rpad(Str,n,pad) 右填充
trim(Str) 去除字符串Str头尾空格
substring(Str,start,len) 返回从字符串Str从start位置起的len个长度的字符串(start是索引的数字,从1开始)
拓展:
substring_index(Str,delim,count):
Str:要拆分的字符串
delim:分隔符(通过某字符进行拆分)
count:为正数时,取第n个分隔符前的所有字符
为负数时,取第n个分隔符后的所有字符
2.数值函数:
ceil(x) 向上取整
floor(x) 向下取整
mod(x,y) 返回x/y的模
rand() 返回0~1之间的随机数
round(x,y) 求参数x四舍五入的值,保留y位小数
3.日期函数:
curdate() 返回当前日期
curtime() 返回当前时间
now() 当前日期时间
year(date) 年
month(date) 月
day(date) 日
date_add(date, interval expr type) 返回一个日期/时间date加上时间间隔expr后的时间值,所加的时间间隔类型为type
datediff(date1,date2) 返回date1和date2之间的天数
4.流程函数:
if(value,t,f) 如果value为true,返回t,否则返回f
ifnull(value1,value2) 如果value1不为空,返回value1,否则返回value2
case when [val1] then [res1]
when [val2] then [res2]
...
else [default] end
如果val1为true,返回res1;
如果val2为true,返回res2;
否则返回default;
case [expr]
when [val1] then [res1]
when [val2] then [res2]
...
else [default] end
如果表达式expr值等于val1,返回res1;
如果等于val2,返回res2;
否则返回default;