你怎么得到'活动日期> HiveQL中的当前日期 - 10天)?

时间:2015-10-24 23:17:01

标签: sql hadoop hive hiveql impala

我正在整理一个每天都会刷新的查询,需要从过去的十个日期中提取记录。

我正在访问的表格中包含带有unix时间戳的“xxdatetime”列和带有yyyy-mm-dd日期的“eventdate”列。

在Impala中,答案很简单:

where eventdate > to_date(days_sub(now(), 10))

我在Hive中使用了它的一个变种但失败了,因为我猜它是在扫描整个表并且表格很大:

where datediff(cast(current_timestamp() as string), eventdate)=10

Hive SQL中是否有一种轻量级方法可以按“今天 - 10天”过滤xxdatetime或eventdate列?

1 个答案:

答案 0 :(得分:2)

Eventdate是我的索引列,date_sub是(字符串,减去天数),current_date是当前Hive yyyy mm dd。

    eventdate > date_sub(current_date, 5)

我不确定这是否超重,但它有效!