2016-11-22 3 views
0

У меня есть таблица элементов:Улей: Как мне присоединиться к условию между датами?

| 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 не так много. Улей не дает вам ничего, кроме «=» в предложении join. (Ссылка на информацию о ВИЧ-инфекции здесь: 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') ; 

 Смежные вопросы

  • Нет связанных вопросов^_^