mysql函数
# 字符串函数 # 拼接两个字符串 concat(字符串1, 字符串2) select concat('123', '456'); # 123456 # 字符串中所有字符转小写 lower(字符串) select lower('Hello'); # hello # 字符串中所有字符转大写 upper(字符串) select upper('Hello'); # HELLO # 字符串向左侧补充长度 lpad(原字符串, 补充后的长度, 被补充的字符串) select lpad('tx', 5, '0'); # 000tx # 字符串向右侧补充长度 lpad(原字符串, 补充后的长度, 被补充的字符串) select rpad('tx', 5, '0'); # tx000 # 清除字符串左右两侧的空格 trim(字符串) select trim(' hello world! '); # 'hello world!' # 字符串截取 substring(字符串, 起始位置, 长度) # 注意:字符串下标是从 1 开始的 select substring('123456', 2, 4); # 2345 # 数值函数 # 向上取整 ceil(数值) select ceil(12.01); # 13 # 向下取整 floor(数值) select floor(12.9); # 12 # 两个数值相除取余 mod(数值1, 数值2) # 相当于js 中的 数值1 % 数值2 select mod(10, 3); # 1 # 生成 0 - 1 之间的随机数 select rand(); # 四舍五入,并保留n位小数,默认n=0 round(数值, n) select round(12.665, 2) # 12.67 # 日期函数 # 返回当前日期 curdate() select curdate(); # 返回当前时间 curtime() select curtime(); # 返回当前日期+时间 select now(); # 注意:格式 日期中必须存在完整的年月日,年月日连接符号可自定义,必须有 # 获取指定date的年份 year(date) select year('2021/01<01 12:12:12'); # 获取指定date的月份 month(date) select month('2021-01<01'); # 获取指定date的日期 day(date) select day('2021-01<05'); # 返回一个日期/时间值加上一个时间间隔 expr 后的时间值 select date_add('2021-01-01', interval 4 year) # 返回两个日期的间隔天数 datediff(起始时间, 结束时间) # 注意:datediff 会用第一个日期减去第二个日期 select datediff(curdate(), '2021-01-01') # 流程函数 # if(value, t, f) 如果value为真,则返回t,否则返回f select names, if(age >= 18, '成年', '未成年') from person p ; # ifnull(value1, value2) 如果value1不为空(null),则返回value1,否则返回value2 SELECT ifnull('abc', '123'); # abc SELECT ifnull('', '123'); # '' SELECT ifnull(null, '123'); # 123 # CASE WHEN 条件 THEN 值 ... else 值 end # 满足 when条件则返回then值,否则继续往下执行,直到执行到end select *, (case when age < 18 then '少年' when age < 35 then '青年' when age < 60 then '中年' else '老年' end) from person p