你在工作过程中,有没有遇到函数难题?
要知道,数据库中函数实在太多了,每个去都学习的话,成本的确有点高。但其实,常用的函数就那些。
今天我们给你整理了常用函数及示例,希望对你有所帮助。
CONCAT(str1,str2,...) # 把多个文本字符串合并成一个长字符串()
示例:
SUBSTRING ( expression, start[,length]) # 截取字符串,第三个参数可以省略,表示截取剩余所有字符。
示例:
TRIM(str) # 返回删除了两边空格的字符串str
示例:
REPLACE(str,from_str,to_str) # 用字符串to_str替换字符串str中的子串from_str并返回
示例:
基础函数有:
DATE(date),YEAR(date),MONTH(date),DAY(date),HOUR(datetime)
这里重点介绍日期时间进行加减运算和时间戳
DATE_ADD(date,interval expr type)
示例:
DATE_SUB(date,interval expr type)
示例:
TIMESTAMPDIFF(type,expr1,expr2) # 返回起始日expr1和结束日expr2之间的时间差整数
示例:
日期202-01-02至2020-3-22相差2个月
UNIX_TIMESTAMP([date]) # 返回一个unix时间戳(从'1970-01-01 08:00:00'开始的秒数
示例:
FROM_UNIXTIME(unix_timestamp) # 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的值
示例:
GROUP_CANCAT([distinct] str [order by strasc/desc] [separator]) #将group by产生的同一个分组中的值连接起来,返回一个字符串结果
示例:
查询每个部门的员工姓名
Mysql8.0版本才支持开窗函数,也可以叫做数据分析函数, 开窗函数的本质还是聚合运算,只不过它更具灵活性,它对数据的每一行,都使用与该行相关的行进行计算并返回计算结果。
语法:
开窗函数的一个概念是当前行
,当前行属于某个窗口,窗口由over关键字来指定函数执行的窗口范围。
如果后面括号中什么都不写,则意味着窗口包含满足where条件的所有行,开窗函数基于所有行进行计算;如果不为空,则有三个参数来设置窗口:
partition by子句:按照指定字段
进行分区
,两个分区由边界分隔,开窗函数在不同的分区内分别执行,在跨越分区边界时重新初始化。
order by子句:按照指定字段
进行排序