gpt4 book ai didi

hadoop - hive :我如何加入一个有日期间隔的条件?

转载 作者:行者123 更新时间:2023-12-02 21:09:30 25 4
gpt4 key购买 nike

我有项目表:

| id | dateTimeUTC      | color | 
+----+------------------+-------+
| 1 | 1/1/2001 1:11:11 | Red |
+----+------------------+-------+
| 2 | 2/2/2002 2:22:22 | Blue |
+----+------------------+-------+

它包含一些带有dateTime的事件。我还有一个事件表:
| eventID | startDate         | endDate          |
+---------+-------------------+------------------+
| 1 | 1/1/2001 1:11:11 | 2/2/2002 2:22:22 |
+---------+-------------------+------------------+
| 2 | 3/3/2003 00:00:00 | 3/3/2003 1:11:11 |
+---------+-------------------+------------------+

我想将两者合并,以获取项目表的dateTimeUTC在事件表的开始和结束日期之间的位置。现在,在sql中执行此操作是非常标准的,但是HQL并没有那么多。 Hive不允许在join子句中只有“=”。 (在此处链接到HIVE信息: https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Joins)。现在,在 here之前有一个类似情况的问题,但是我发现距此已经有4年了,并希望有一个解决方案。

关于如何实现此目标的任何提示?

最佳答案

我认为您有表格中日期的字符串格式,如果是,请使用以下...将日期转换为标准格式。

select  * from  items_x, items_date where  UNIX_TIMESTAMP(dateTimeUTC,'dd/MM/yyyy HH:MM:SS')  between UNIX_TIMESTAMP(startDate,'DD/MM/YYYY HH:MM:SS') and   UNIX_TIMESTAMP(endDate,'DD/MM/YYYY HH:MM:SS') ;

关于hadoop - hive :我如何加入一个有日期间隔的条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40745552/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com