SQL小技巧:本月、上月、去年同期
利用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')
版权保护: 本文由 绿茶加糖-郭保升 原创,转载请保留链接: https://www.guobaosheng.com/shujuku/399.html
- 上一篇:告别慢查询:让SQL JOIN多表查询飞起来!
- 下一篇:SQL动态参数
