
利用hive内置的动态参数也是可以取到本月、上月和去年同期
如果每个月1号要发送上个月的数据,以及环比上上个月数据,以及同比去年同期的数据:
-- 获取本月
${yyyyMM-1M}
-- 上月
${yyyyMM-2M}
--去年同期
${yyyyMM-13M}
-- 列如dt是yyMMdd格式,利用以下语句就可以取到想要的数据了
substr(dt,0,6) in (${yyyyMM-1M},${yyyyMM-2M},${yyyyMM-13M})
是不是超级方便,但是不是所有的hive平台都支持,公司hive内置的时间动态参数仅限公司内可用,得看你们公司有没有开发这块的功能。

所以呢,还是要了解一下通用的写法,写法有许多,这里介绍一种写的相对比较短的语法:
-- 获取当前天
select current_date()
-- trunc返回日期最开始的年份(yyyy)/月份(MM)
--获取本月第一天
select trunc(current_date(),'MM')
-- 获取上月第一天
select trunc(add_months(current_date(),-1),'MM')
-- *****获取上个月整月
dt>=trunc(add_months(current_date(),-1),'MM')
and dt<trunc(current_date(),'MM')
-- 获取上上月第一天
select trunc(add_months(current_date(),-2),'MM')
-- ******获取上上个月整月
dt>=trunc(add_months(current_date(),-2),'MM')
and dt<trunc(add_months(current_date(),-1),'MM')
-- ******获取去年同月
dt>=trunc(add_months(current_date(),-13),'MM')
and dt<trunc(add_months(current_date(),-12),'MM')

© 版权声明
文章版权归作者所有,未经允许请勿转载。如内容涉嫌侵权,请在本页底部进入<联系我们>进行举报投诉!
THE END



















- 最新
- 最热
只看作者