数值函数
函数 | 含义 | 返回类型 |
---|---|---|
abs(-25) | 返回绝对值 | 数值类型 |
ceiling(1.3) | 返回大于输入值的最小整数 | 整数 |
floor(1.3) | 返回小于输入值的最大整数 | 整数 |
mod(x,y) | 求x%y 求余数 | 整数 |
round(3.345,2) | 保留2位小数 | 数值类型 |
日期时间相关函数
函数 | 含义 | 返回类型 |
---|---|---|
extract()函数 | 提取datetime或者timestamp中年,月,日,时,分,秒 | 整数 |
current_date | 当前日期 | 日期 |
current_time | 当前时间 | 时间 |
current_timestamp | 当前日期时间 | 日期时间 |
datediff(date1,date2) | 日期差异 | 整数 |
date+interval | 日期+时间间隔 | 日期 |
extract()函数示例
--
select created_at,
EXTRACT (YEAR FROM created_at) AS year,
EXTRACT (MONTH FROM created_at) AS month,
EXTRACT (DAY FROM created_at) AS day,
EXTRACT (HOUR FROM created_at) AS hour,
EXTRACT (MINUTE FROM created_at) AS MINUTE,
EXTRACT (SECOND FROM created_at) AS SECOND
from company_contract
-----
interval关键字
使用场景:日期时间的运算
select ('2024-01-01' + interval 1 day)
单位选择有 year ,month,day, hour,minute,second
--结果 '2024-01-02'
使用前提:必须是日期或者时间或者日期时间类型
'YYYY-mm-dd'
case条件表达式
使用场景:给原始结果集自定义新增列进行分组
select name,case
when name = '123' then 'job'
when name = '213' then 'job2'
else 'job3' end as "工作" from table;
select name,case
when name = '123' then 'job'
when name = '213' then 'job2'
else 'job3' end as job from table;
if表达式
if(expression,val1,val2) --语法
select if('2'='2',1,5)
返回 1
val1和val2 要求类型保持一致
ipv4 IP地址相关函数
select INET_ATON('192.168.1.101') -- 输入一个ipv4格式的字符串,返回整数,或者返回null
select INET_NTOA(3232235877)-- 输入整数,返回ipv4格式字符串,或者返回null
参考链接:MySQL常用函数大全(总结篇)_mysql函数-CSDN博客
窗口函数
参照另一篇文章: