Как выбрать записи из дней недели?

У меня есть таблица улья, которые содержат ежедневные записи. Я хочу выбрать запись из дней недели. Поэтому я использую запрос ниже, чтобы сделать это. Я использую QUBOLE API для этого.

SELECT      hour(pickup_time),
            COUNT(passengerid)
FROM        home_pickup
WHERE       CAST(date_format(pickup_time, 'u') as INT) NOT IN (6,7)
GROUP BY    hour(pickup_time) 

Однако, когда я запускаю этот код, он пришел с ошибкой ниже.

SemanticException [Ошибка 10011]: строка 4:12 Неверная функция 'date_format'

Разве Qbole не поддерживает функцию date_format? Есть ли другой способ выбрать дни недели?

1 ответ

Решение

Использование unix_timestamp(string date, string pattern) преобразовать данный формат даты в секунды, прошедшие с 1970-01-01. Тогда используйте from_unixtime() преобразовать в заданный формат:

Демо-версия:

hive> select cast(from_unixtime(unix_timestamp('2017-08-21 10:55:00'),'u') as int);
OK
1

Вы можете указать шаблон даты для unix_timestamp для нестандартного формата. Смотри документы здесь: https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF

Другие вопросы по тегам