MaxCompute
· 约 1 分钟阅读
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 tableWHERE 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 dsFROM ( SELECT EXPLODE(SEQUENCE(0,365 * 2)) AS d)删除分区
具体见 官方文档。
批量删除分区
alter table sale_detail drop if exists partition(sale_date < '201911');