如何在HIVE中获取最近12个月以及按月分月的数据?

时间:2018-12-20 07:52:03

标签: sql hive hiveql

日期列的表格式为“ yyyyMMdd”,我正在使用以下函数转换为标准格式,以便可以执行HIVE日,月和年来获取各自的值。

(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

问题:如果当前日期为一月,我将仅获得一月数据月,但是我需要获取从二月(去年)到一月(当前年)的数据?

我还需要扩展它以获取最近的24个月。

enter image description here

1 个答案:

答案 0 :(得分:0)

我总是在Hive之外设置日期范围参数,并将它们作为参数传递,因为这样可以提高可重复性和可测试性。

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