Как выбрать записи из дней недели?
У меня есть таблица улья, которые содержат ежедневные записи. Я хочу выбрать запись из дней недели. Поэтому я использую запрос ниже, чтобы сделать это. Я использую 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