sql—如何在hive中获取过去12个月的数据并按月份进行拆分?

ekqde3dh  于 2021-06-27  发布在  Hive
关注(0)|答案(1)|浏览(1132)

date列的表格式是“yyyymmdd”,我使用以下函数将其转换为标准格式,以便可以执行配置单元day、months和year来获取相应的值。

(from_unixtime(unix_timestamp(cast(created_day as STRING) ,'yyyyMMdd'), 'yyyy-MM-dd'))

为了得到当前年份的数据,我会用当前日期返回的年份减去所有记录中获得的年份,如果它返回零,那么它就属于今年。

(year(current_date()) - year(from_unixtime(unix_timestamp(cast(created_day as STRING) ,'yyyyMMdd'), 'yyyy-MM-dd'))) = 0

问题:如果当前日期在1月,我将只获取1月数据,但我需要获取2月(去年)到1月(今年)的数据?
此外,我需要扩大这一点,以获得过去24个月。

pcww981p

pcww981p1#

我总是在配置单元之外设置我的日期范围参数,并将它们作为参数传递,因为这有助于实现可复制性和可测试性。

select <fields> from <table> where created_day between ${hiveconf:start_day} and ${hiveconf:end_day}

相关问题