DataWorks在定义参数的时候 如果是用大括号 比如我想定义取上个月 last_mth 那我就设置last_mth=${add_months(yyyy-mm,-1)} 就可以了吗?我看文档说大括号是基于bizdate的 bizdate 还需要定义吗?
是希望取bizdate的上个月 而不是定时时间的上个月对吗, 可以参考一下这个案例试试,上面的方式预览出来应该不能满足需求
-- 需求6. 取昨天(业务日期)的上个月的第一天,期望格式为yyyyMMdd
-- 配置:var6=$[yyyymmdd-1]
-- 调用:${var6}
-- 举例:假设定时时间为"2024-01-22 00:19:00"(即SKYNET_CYCTIME=20240122001900),预期调度参数返回值:20240121,取其上个月第一天预期为:20231201
-- 假设定时时间为"2024-01-01 00:16:00"(即SKYNET_CYCTIME=20240101001600),预期调度参数返回值:20231231,取其上个月第一天预期为:20231101
-- 开启hive兼容模式,DATE_FORMAT函数需在该模式下使用。
SET odps.sql.hive.compatible = true
;
SELECT '需求6. 取昨天(业务日期)的上个月的第一天,期望格式为yyyyMMdd' AS `需求`
,'配置:var6=$[yyyymmdd-1]' AS `配置`
,DATE_FORMAT(ADD_MONTHS(CONCAT(DATE_FORMAT(TO_DATE('${var6}','yyyyMMdd'),'yyyy-MM'),'-01'),-1),'yyyMMdd') AS `对调度参数返回值二次处理后的结果`
;
,此回答整理自钉群“DataWorks交流群(答疑@机器人)”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。