2016-11-22 21 views
0

我有一個項目表:蜂巢:我如何加入日期條件?

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

它包含在其中的日期時間的一些事件。我也有一個事件表:

| 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不允許在連接子句中使用「=」。 (鏈接到HIVE信息在這裏:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Joins)。現在,在here之前有一個類似的情況,但是我發現它已經4年了,並且希望有一個解決方案。

有關如何實現此目的的任何提示?

回答

0

我認爲你有表格中的日期字符串格式,如果是使用以下...將日期轉換爲標準格式。

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') ;