MaxCompute
2024-05-23#MaxCompute
MaxCompute 速查。
获取上一个月最后一天 🔗
给定日期为yyyyMMdd
的日期字符串形式,比如20240523
,返回上个月的最后一天,并且仍然以 yyyyMMdd
返回:
SELECT TO_CHAR(date(LAST_DAY(ADD_MONTHS(TO_DATE('20240523','yyyyMMdd'),-1))),'yyyyMMdd') AS last_day_of_last_month
结果:
last_day_of_last_month |
---|
20240430 |
根据日期字符串过滤 🔗
假定 ds
为分区字段,格式为 yyyyMMdd
,当前日期为 ${exec_date}
,那么过滤上个月的所有分区:
SELECT * FROM table
WHERE ds <= TO_CHAR(date(LAST_DAY(ADD_MONTHS(TO_DATE('${exec_date}','yyyyMMdd'),-1))),'yyyyMMdd')
AND ds > TO_CHAR(date(LAST_DAY(ADD_MONTHS(TO_DATE('${exec_date}','yyyyMMdd'),-2))),'yyyyMMdd')
生成日期序列 🔗
生成过去2年的每天一天的日期字符串:
SELECT TO_CHAR(DATE_ADD(TO_DATE('20240528','yyyyMMdd'),-d),'yyyyMMdd') AS ds
FROM ( SELECT EXPLODE(SEQUENCE(0,365 * 2)) AS d)
删除分区 🔗
具体见 官方文档。
批量删除分区 🔗
alter table sale_detail drop if exists partition(sale_date < '201911');
加载中...