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');

加载中...