Улей Текущая функция даты

Хочу узнать текущую дату в билайне.

Я пытался использовать это:

FROM_UNIXTIME(UNIX_TIMESTAMP())

это выводит это:

16-03-21

Что я искал, чтобы получить это:

2016-03-21 09:34

Как мне это сделать? Я вижу документацию beeline здесь: https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF

Но это не сработало для меня.

3 ответа

Решение

Попробуй это:

 Select to_date(from_unixtime(unix_timestamp())) from my table ...

Результаты за 2016-03-21

Вы можете получить его, передав ожидаемый формат в качестве параметра функции from_unixtime.

Пример:

выберите from_unixtime(unix_timestamp(),'гггг-ММ-дд ЧЧ: ММ');

Результат:

2016-03-21 16:03

Есть много функций, которые вы можете использовать в улье: взято с http://atiblog.com/date-function-hive/

1) FROM_UNIXTIME:

Эта функция преобразует количество секунд из эпохи Unix (1970-01-01 00:00:00 UTC) в строку STRING, которая представляет TIMESTAMP этого момента в текущем системном часовом поясе в формате "1970-01-01 00: 00: 00”. В следующем примере возвращается текущая дата, включая время.

hive> SELECT FROM_UNIXTIME(UNIX_TIMESTAMP());Хорошо
2015–05–18 05:43:37 Время: 0,153 секунды, извлечено: 1 ряд (а)

2) from_utc_timestamp: - Эта функция предполагает, что строка в первом выражении является UTC, а затем преобразует эту строку во временную зону второго выражения. Эта функция и функция to_utc_timestamp выполняют преобразование часовых поясов. В следующем примере t1 является строкой.hive> SELECT from_utc_timestamp(‘1970-01-01 07:00:00’, ‘JST’);ОК 1970–01–01 16:00:00 Время: 0,148 секунды, извлечено: 1 ряд (ы)

3) to_utc_timestamp: эта функция предполагает, что строка в первом выражении находится в часовом поясе, указанном во втором выражении, а затем преобразует значение в формат UTC. Эта функция и функция from_utc_timestamp выполняют преобразование часовых поясов.hive> SELECT to_utc_timestamp (‘1970-01-01 00:00:00’,‘America/Denver’);ОК 1970–01–01 07:00:00 Время: 0,153 секунды, извлечено: 1 ряд (ы)

4) unix_timestamp: эта функция преобразует дату в указанный формат даты и возвращает количество секунд между указанной датой и эпохой Unix. Если это не удается, то он возвращает 0. Следующий пример возвращает значение 1237487400hive> SELECT unix_timestamp (‘2009-03-20’, ‘yyyy-MM-dd’);ОК 1237487400 Время: 0,156 секунды, извлечено: 1 ряд (ы)

5) unix_timestamp (): эта функция возвращает количество секунд из эпохи Unix (1970-01-01 00:00:00 UTC), используя часовой пояс по умолчанию.

hive> select UNIX_TIMESTAMP(‘2000-01-01 00:00:00’);OK 946665000 Время: 0,147 секунд, Извлечено: 1 ряд (ы)

6) unix_timestamp (строка даты): эта функция преобразует дату в формате 'гггг-мм-дд чч: мм: сс' в метку времени Unix. Это вернет количество секунд между указанной датой и эпохой Unix. Если это не удается, то он возвращает 0.hive> select UNIX_TIMESTAMP(‘2000-01-01 10:20:30’,‘yyyy-MM-dd’);OK 946665000 Время: 0,148 секунд, извлечено: 1 ряд (ы)

7) unix_timestamp (строковая дата, строковый шаблон): эта функция преобразует дату в указанный формат даты и возвращает количество секунд между указанной датой и эпохой Unix. Если это не удается, то он возвращает 0.hive> select FROM_UNIXTIME( UNIX_TIMESTAMP() );

8) from_unixtime (bigint number_of_seconds [, формат строки]): функция FROM_UNIX преобразует указанное количество секунд из эпохи Unix и возвращает дату в формате "гггг-мм-дд чч: мм: сс".

hive> SELECT FROM_UNIXTIME(UNIX_TIMESTAMP());

9) To_Date (строка времени):

hive> select TO_DATE(‘2000-01-01 10:20:30’);ОК 2000–01–01

10) WEEKOFYEAR (строковая дата) Функция WEEKOFYEAR возвращает номер недели даты.hive> SELECT WEEKOFYEAR(‘2000-03-01 10:20:30’);ОК 9

11) DATEDIFF (строка date1, строка date2) Функция DATEDIFF возвращает количество дней между двумя указанными датами.hive> SELECT DATEDIFF(‘2000-03-01’, ‘2000-01-10’);ОК 51 Время занято: 0,156 секунды, Извлечено: 1 ряд (ы)

12) DATE_ADD (строковая дата, int days) Функция DATE_ADD добавляет количество дней к указанной датеhive> SELECT DATE_ADD(‘2000-03-01’, 5);ОК 2000–03–06

13) DATE_SUB (строковая дата, int days) Функция DATE_SUB вычитает количество дней до указанной датыhive> SELECT DATE_SUB(‘2000-03-01’, 5);OK 2000–02–25 14) КОНВЕРЦИИ ДАТЫ: Преобразование формата MMddyyyy в Unix time

Примечание: M должен быть прописной Каждый раз в формате MMddyyyy

select cast(substring(from_unixtime(unix_timestamp(dt, ‘MMddyyyy’)),1,10) as date) from sample;

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