从蜂巢中的当前日期开始计算最近5年

时间:2018-05-25 04:25:49

标签: date hive

我需要根据给定的时间范围计算一些计数 我需要考虑当前日期和过去5年之间的日期

select count(*) from table where (year(current_date) -year('2015-12-01')) < 5 ;

以上查询将给出过去5年的计数但是它只考虑年份,但我需要考虑天数的确切计数,所以如果我写

 select count(*) from table where datediff(current_date,final_dt) <= 1825 ;

它不会考虑过去5年中的闰年

那么在配置单元中是否有任何函数可以计算两个日期之间的确切差异,并考虑闰年等情况?

2 个答案:

答案 0 :(得分:1)

使用add_months功能(假设日期应该返回到2013-05-25,当前日期为2018-05-25)。

select count(*) 
from table
where final_dt >= add_months(current_date,-60) and final_dt <= current_date

答案 1 :(得分:0)

我认为您正在尝试计算count(*) current_date与过去5年之日current_date之间的所有记录,在这种情况下,您可以执行此类操作:

SELECT count(*) FROM table_1 WHERE date_column BETWEEN current_date AND to_date(CONCAT(YEAR(current_date) - 5, '-', MONTH(current_date), '-', DAY(current_date)));

SELECT datediff( current_date() ,to_date(CONCAT(YEAR(current_date) - 5, '-', MONTH(current_date), '-', DAY(current_date))));

给你1826(考虑到2016年是闰年这一事实)。