系统内置函数:
查看系统内置函数:show functions;
查看一个函数的用法:desc funtion 函数名;
查看一个函数的具体用法:desc function extended 函数名;
时间处理函数:
1、unix_timestamp:
select unix_timestamp(); |
返回当前时间的时间戳 |
select unix_timestamp('2021-11-03 14:42:33'); |
返回指定日期(须为标准化格式)的时间戳 |
select unix_timestamp('20211103 14:42:33','yyyyMMdd HH:mm:ss'); |
返回指定日期(任意格式,需要将字符串日期格式化)的时间戳 |
注:unix_timestamp 可以将任意不规则的日期格式转化为时间戳,再通过from_unixtime 就可转成需要的日期格式!
2、from_unixtime:将时间戳以指定的时间格式返回(不指定的话,返回标准化时间)
select from_unixtime(1635921753,'yyyy--MM/dd HH:mm:ss');
from_utc_timestamp(ts*1000,'GMT+8'):将时间戳转化为指定时区的时间(GMT+8表示东八区;函数默认单位为毫秒,ts单位为秒,所以要*1000)
例:把时间戳转化为固定格式
date_format(from_utc_timestamp(1635921753000,'GMT+8'), 'yyyy-MM-dd HH:mm:ss')
3、current_timestamp:返回当前时间,精确到毫秒(注:返回的是标准化格式时间,而不是时间戳)
select current_timestamp;
例:2022-03-24 17:33:45.246
4、current_date:返回当前日期,精确到天
select current_date;
5、to_date:提取一个字符串中的日期部分,这个日期必须符合标准化时间格式
select to_date('2021-11-03 14:42:33');
6、提取年、月、日、时、分、秒
select year ('2021-11-03 14:42:33');
select month ('2021-11-03 14:42:33');
select day ('2021-11-03 14:42:33');
select hour ('2021-11-03 14:42:33');
select minute ('2021-11-03 14:42:33');
select second ('2021-11-03 14:42:33');
7、weekofyear:计算指定日期是当年的第几周
select weekofyear('2021-11-03 14:42:33');
8、dayofmonth:计算指定日期是当月的第几天
select dayofmonth('2021-11-03 14:42:33');
9、months_between(date1,date2):计算date1和date2之间相距几个月,前减后
select months_between('2020-11-03 14:42:33','2021-11-03 14:42:33');
10、add_months:计算指定日期,加上指定月数后的日期
select add_months('2020-11-03', 12);
11、datediff:计算两个日期相距天数,前减后
select datediff('2020-11-03 14:42:33','2021-11-03 14:42:33');
12、date_add:计算指定日期,加上指定天数后的日期
select date_add('2020-11-03', 12);
13、date_sub:计算指定日期,减去指定天数后的日期
select date_sub('2020-11-03', 12);
14、last_day:计算指定日期当月的最后一天
select last_day('2020-11-03 14:42:33');
15、date_format:将标准化格式的时间,改为其他任意格式(字符串--->日期)
select date_format('2020-11-03 14:42:33','yyyy&MM&dd HHmmss');
--------------------------------------------------------------------------------------------------------------------------------
数字处理函数:
sum |
求和,自动过滤掉null值 |
avg |
求平均数,自动过滤掉null值 |
max |
求最大值,自动过滤掉null值 |
min |
求最小值,自动过滤掉null值 |
count |
计数 |
round |
四舍五入,可以传一个参数,默认取整;传第二个参数保留小数的个数 例: round(12.34) --->12 round(12.34,1) --->12.3 round(12.34,-1) --->10 |
floor |
向下取整 例: floor(12.56) --->12 |
ceil/ceiling |
向上取整 |
--------------------------------------------------------------------------------------------------------------------------------
集合处理函数:
size |
返回一个数组中的元素个数 |
map_keys |
返回一个map中所有的key组成的数组 |
map_values |
返回一个map中所有的value组成的数组 |
array_contains |
判断一个数组中是否包含某元素 |
sort_array |
将数组中的元素排序后返回 |
--------------------------------------------------------------------------------------------------------------------------------
类型转换函数
cast (字段 as 数据类型) |
cast 做强制类型转化,不做四舍五入 例:cast(age as bigint) cast(123.5678 as decimal(16,2)) --->123.56 |