在Hive SQL中生成日期

时间:2017-10-10 11:09:19

标签: hive

我希望能够创建一个表,其中包含来自另一个表的最小和最大日期之间的所有日期(包括)。请参阅下面的简单查询以获取这些日期

-- Get the min and max dates from the table
select min(date(sale_date)) as min_date,
       max(date(sale_date)) as max_date
from TABLE;

我花了最后一小时搜索这个问题,并且已经尝试在MySQL和Oracle SQL上执行此操作,但没有在Hive SQL上执行此操作,而我无法将其转换为Hive SQL。如果有人知道如何做到这一点,请告诉我。提前感谢你。

1 个答案:

答案 0 :(得分:0)

好的,这不是我的答案。一位同事能够回答这个问题。我仍然认为,为了您未来的利益,我会展示我的同事的解决方案。它假定您已创建一个包含最小日期和最大日期的表。

CREATE TABLE TABLE_2
STORED AS AVRO
LOCATION 'xxxxxx'
AS
SELECT date_add (t.min_date,pe.i)   AS date_key
FROM    TABLE_1 t
LATERAL VIEW
posexplode(split(space(datediff(t.max_date,t.min_date)),' ')) pe AS i,x;