【发布时间】:2019-06-12 12:51:51
【问题描述】:
Hive 查询未返回数据(行数为 0)。
需要从表中检索截至/当前日期的 1 个月前的记录。
select * from table1
where date_format(order_date,'yyyy-MM-dd') >= date_format(add_months(current_date,-1),'yyyy-MM-01')
and date_format(order_date,'yyyy-MM-dd') <= date_format(current_date,'yyyy-MM-dd');
需要检索截至日期的过去 1 个月的数据。
【问题讨论】:
-
order_date 中最初存储的内容是什么?请提供一些例子
-
select * from table1 where order_date between add_months(order_date,-1) 和 sysdate;如果 order_date 不是日期,您需要使用 to_date(order_date,'yyyy-MM-dd')
-
@praveena mohan 您能否确认您的问题是否已解决?
-
Null 发生是因为日期列被定义为字符串,因此下面的查询有帮助。 select * from tables where date_format(regexp_replace(order_date,'_','-'),'yyyy-MM-dd') 在 date_format(add_months(current_date,-6),'yyyy-MM-01') 和 current_date 之间;谢谢大家的回复!
-
@praveenamohan 请批准答案!并点赞!