MaxCompute常用时间周期SQL

相对时间:近3年、近1年、近6月、近3月、近1月
绝对时间:去年、本年、上月、本月、上周、本周

SELECT  DATE_SUB(TO_DATE('${bizdate}','yyyyMMdd'),365) AS year_1y
        ,TO_DATE(TO_DATE('${bizdate}','yyyyMMdd')) AS bizdate
;

SELECT  TO_DATE(order_dt) > DATE_SUB(TO_DATE('${bizdate}','yyyyMMdd'),420)
        ,TO_DATE(order_dt) <= TO_DATE(TO_DATE('${bizdate}','yyyyMMdd'))
;

SELECT  '${bizdate}' AS d
        ,TO_CHAR(DATE_SUB(TO_DATE('${bizdate}','yyyyMMdd'),30),'yyyyMM') AS 1m
        ,TO_CHAR(DATE_SUB(TO_DATE('${bizdate}','yyyyMMdd'),30 * 3),'yyyyMM') AS 3m
        ,TO_CHAR(DATE_SUB(TO_DATE('${bizdate}','yyyyMMdd'),30 * 6),'yyyyMM') AS 6m
        ,TO_CHAR(DATE_SUB(TO_DATE('${bizdate}','yyyyMMdd'),365),'yyyyMM') AS 1yy
        ,TO_CHAR(DATE_SUB(TO_DATE('${bizdate}','yyyyMMdd'),365 * 3),'yyyyMM') AS 3yy
UNION ALL
SELECT  '${bizdate}' AS d
        ,TO_CHAR(TO_DATE(ADD_MONTHS(TO_DATE('${bizdate}','yyyyMMdd'),-1)),'yyyyMM') AS 1m2
        ,TO_CHAR(TO_DATE(ADD_MONTHS(TO_DATE('${bizdate}','yyyyMMdd'),-3)),'yyyyMM') AS 3m2
        ,TO_CHAR(TO_DATE(ADD_MONTHS(TO_DATE('${bizdate}','yyyyMMdd'),-6)),'yyyyMM') AS 6m2
        ,TO_CHAR(TO_DATE(ADD_MONTHS(TO_DATE('${bizdate}','yyyyMMdd'),-12)),'yyyyMM') AS 1yy2
        ,TO_CHAR(TO_DATE(ADD_MONTHS(TO_DATE('${bizdate}','yyyyMMdd'),-36)),'yyyyMM') AS 3yy2
;

SELECT  TO_DATE(DATETRUNC(TO_DATE('${bizdate}','yyyyMMdd'),'yyyy')) -- this-year
,DATETRUNC(CAST(ADD_MONTHS(TO_DATE('${bizdate}','yyyyMMdd'),-12) AS DATE),'yyyy') -- last-year
,DATE_SUB(DATETRUNC(TO_DATE('${bizdate}','yyyyMMdd'),'yyyy'),1)-- last-year
,TO_DATE(ADD_MONTHS(TO_DATE('${bizdate}','yyyyMMdd'),-12)) -- 1y
,TO_DATE(ADD_MONTHS(TO_DATE('${bizdate}','yyyyMMdd'),-6)) -- 6m
,TO_DATE(ADD_MONTHS(TO_DATE('${bizdate}','yyyyMMdd'),-3)) -- 3m
,TO_DATE(DATETRUNC(TO_DATE('${bizdate}','yyyyMMdd'),'mm')) -- this-month
,DATETRUNC(CAST(ADD_MONTHS(TO_DATE('${today}','yyyyMMdd'),-1) AS DATE),'mm') -- last-month
,DATE_SUB(DATETRUNC(TO_DATE('${today}','yyyyMMdd'),'mm'),1) -- last-month
,DATE_ADD(NEXT_DAY(TO_DATE('${today}','yyyyMMdd'),"MO"),-7) -- this-week
,DATE_ADD(NEXT_DAY(TO_DATE('${today}','yyyyMMdd'),"MO"),-14) -- last-week
, DATE_ADD(NEXT_DAY(TO_DATE('${today}','yyyyMMdd'),"MO"),-8)-- last-week
;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值