字符串函数
1. 字符串拼接:concat(str1, str2, str3…)
eg:select concat(‘Hello’,’ mysql’) -- Hello mysql
2. 将字母全部转为小写:lower(str)
eg:select lower(‘Hello’) -- hello
3. 将字母全部转为大写:upper(str)
eg:select upper(‘Hello’) -- HELLO
4. 左填充 ,用字符串对str左边进行填充:lpad(str,n,pad)
其中:str表示字符串,n表示总的位数,pad表示要填充的字符串
eg:select lpad(‘01’,5,’-’) -- ---01
5. 右填充 ,用字符串对str左边进行填充:rpad(str,n,pad)
其中:str表示字符串,n表示总的位数,pad表示要填充的字符串
eg:select rpad(‘01’,5,’-’) -- 01---
6. 去掉字符串头部和尾部的空格:trim(str)
eg:select trim(' Hello Mysql ') -- Hello Mysql
7. 返回从字符串str从start位置起len个长度的字符串:substring(str,start,len)
eg:select substring(‘Hello Mysql’,1,5) -- Hello
eg:将编号变成5位数,不足5位的往前面补0,例如1号为00001,2号为00002,100号为00100
update 表名 set 编号 = lpad(编号,5,‘0’)
数字函数
1. 向上取整:ceil(x)
eg:select ceil(1.5) -- 2
2. 向下取整:floor(x)
eg:select floor(1.5) -- 1
3. 返回x/y的模:mod(x,y)
eg:select mod(3,4) -- 3
eg:select mod(5,4) -- 1
eg:select mod(6,4) -- 2
4. 返回0-1内的随机数:rand()
eg:select rand() -- 随机数
5. 求参数x的四舍五入的值,保留y位小数:round(x,y)
eg:select round(2.34,2) -- 2.34
eg:select round(2.345,2) -- 2.35
eg:select round(2.344,2) -- 2.34
eg:生成一个六位数的随机数
select lpad(round(rand()*1000000,0),6,’0’)
日期函数
1. 返回当前日期:curdate()
eg:select curdate()
2. 返回当前时间curtime()
eg:select curtime()
3. 返回当前日期和时间now()
eg:select now()
4. 获取指定date年份year(date)
eg:select year(now())
5. 获取指定date月份month(date)
eg:select month(now())
6. 获取指定date日期day(date)
eg:select day(now())
7. 返回一个日期/时间值加上一个时间间隔expr后的时间值:date_add(date,interval expr type)
eg:select date_add(now(),interval 70 type) -- 返回70年后的今天
8. 返回起始时间date1和结束时间date2之间的天数:datediff(date1,date2)
eg:select datediff(‘2023-01-01’,‘2024-01-01’)
流程函数
1. 如果value为true,返回t,否则返回f:if(value,t,f)
eg:select if(true,’ok’,’error’) -- ok
2. 如果value不为空,返回value1,否则返回value2:ifnull(value1,value2)
eg:select ifnull(‘ok’,’default’) -- ok
eg:select ifnull(‘’,’default’) --
eg:select ifnull(null,’default’) -- default’
3. 如果val1为true,返回res1,否之返回default默认值:case when [val1] then [res1]…else [default] end
4. 如果expr的值等于val1,返回res1,否则返回default默认值:case [expr] when [val1] then [res1]…else [default] end