我是 hive 和 sql 的新手。

如果我们今天使用计数字段运行查询,那么它应该获取过去 7 天的数据(例如,如果我在星期一使用计数字段运行查询,那么我应该获取上周星期一到星期日的总计数)和日期在我的表中的格式是 20150910 。 ( yyyyMMdd )。

请帮助我解决这个问题。

最佳答案

在这种情况下,您可以使用 date_sub()。像这样的东西应该工作......

select * from table
where date_field >= date_sub(current_date, 7)

假设当天的数据还没有加载。如果您也想排除当天的数据,则必须将其也包含在过滤条件中
 and date_field <= date_sub(current_date, 1)

如果您的配置单元版本 > 0.12 ,则 current_date 会起作用
否则,您可以使用 to_date(from_unixtime(unix_timestamp())) 从 unix 中显式提取日期

关于sql - 在 hive 中返回上周的数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32504039/

10-16 10:13