sql PRESTO 时间处理函数

时间处理:

昨天/当前日期减一天format_datetime(current_date - interval '1' day,'yyyy-MM-dd')
本月format_datetime(current_date - interval '1' day,'yyyy-MM')
上月format_datetime(current_date - interval '1' day - interval '1' month,'yyyy-MM')
下月format_datetime(current_date - interval '1' day +interval '1' month,'yyyy-MM')
去年同月format_datetime(current_date - interval '1' day - interval '12' month,'yyyy-MM')
当前日期减一天format_datetime(current_date - interval '1' day,'yyyy-MM-dd')
当前日期减一个月format_datetime(current_date - interval '1' month,'yyyy-MM')
两个时间的自然日期差值/天内date_diff('day',cast(substr('2025-03-05 23:34:39',1,10) as date),cast(substr('2025-03-08 13:16:23',1,10) as date))常用于计算多少天,或者多少天内的限制
两个时间的自然月份差值/多少月date_diff('month',cast(concat(substr('2025-02-05 23:34:39',1,8),'01') as date),cast(concat(substr('2025-03-08 13:34:39',1,8),'01') as date))----提取俩个时间的自然月份差,小时间在前,大时间在后;需将两个时间转化成yyyy-MM-01的格式;常用于计算第几个月,或者几个月内的限制
两个时间的自然小时差/小时内date_diff('hour',cast(concat(substr('2025-03-05 23:34:39',1,14),'00:00') as timestamp),cast(concat(substr('2025-03-08 13:34:39',1,14),'00:00') as timestamp))----提取;两个时间的自然小时差,小时间在前,大时间在后;需将两个时间转化成yyyy-MM-dd hh:00:00的格式,常用于计算多少小时,或者几个小时内的限制
正则表达式regexp_like(appointment_stu_grade,'一|二|三|四|五|六')
月末最后一天format_datetime(cast(concat(substr(2025-03-05 23:34:39,1,7),'-01') as date)+interval'1'month-interval'1'day,'yyyy-MM-dd')---将时间转化为下个月的第一天,再减去一天
计算最后一次/末次row_number()over(partition by studernt_age order by student_id asc) as rn---当rn=1时是末次,常用于只保留一条末次记录
计算第一次/首次row_number()over(partition by studernt_age order by student_id) as rn--当rn=1时是首次,常用于只保留一条首次记录
查询上一次的数据lag(student_id,1)over(partition by studernt_age order by student_id) as student_id--该生同龄前一个学生
查询下一次的数据lead(student_id,1)over(partition by studernt_age order by student_id) as student_id--该生同龄后一个学生
查询首次first_value(student_id,1)over(partition by studernt_age order by student_id) as student_id--第一个学生,常用于保留所有记录,每条记录能看到第一个记录的内容
查询末次last_value(student_id,1)over(partition by studernt_age order by student_id) as student_id--最后一个学生,常用于保留所有记录,每条记录能看到最后一个记录的内容
json字段提取json_extract_scalar(ext_info,'$.regOldCr') as regOldCr---ext_info为json类型,里面包含了regOldCr字段
将字段聚合为数组array_agg(value)
将字段聚合为数组并去重array_distinct(value)
将数组用逗号间隔array_join(comment, ', ')
grouping sets()分层聚合group by grouping sets((student_sex,student_age),(student_age))----这样相当于对(student_sex,student_age)和(student_age)分别聚合
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值