Преобразование строки в дату с датой и временем вместе в Hive - PullRequest
0 голосов
/ 12 февраля 2020

Мне нужно преобразовать строку в дату и время (дата и время вместе).

Я пытаюсь это:

cast(to_date(from_unixtime(unix_timestamp('20190303164305', 'yyyyMMddHHmmss'))) as date) as date_data_chamada

часовой пояс: Бразилия

Но этот способ возвращает только дату вот так: 2019-03-03, а мне нужно: 2019-03-03 16: 43: 05

Спасибо!

Полный код:

INSERT INTO p_b.este PARTITION (dt_originacao_fcdr)
SELECT
tp_registro_fcdr,
seq_registro_fcdr,
tp_cdr_fcdr,
dt_atendimento_fcdr,
data_atendimento_completa_fcdr,
cast(from_unixtime(unix_timestamp(data_atendimento_completa_fcdr, 'yyyyMMddHHmmss'),"yyyy-MM-dd HH:mm:ss")as timestamp) as date_data_atendimento_fcdr,
hr_atendimento_fcdr,
duracao_atend_fcdr,
hr_originacao_fcdr,
duracao_total_fcdr,
duracao_chamada_tarifada_fcdr,
st_chamada_fcdr,
fim_sel_orig_fcdr
FROM p_b.norm;

Ответы [ 2 ]

0 голосов
/ 12 февраля 2020

Удалите date кастинг и to_date функции, как вы ожидаете, отметку времени!

Example:

hive> select from_unixtime(unix_timestamp('20190303164305', 'yyyyMMddHHmmss'),"yyyy-MM-dd HH:mm:ss") as date_data_chamada;

RESULT:

2019-03-03 16:43:05

Если вы используете to_date или cast('string' as date), то только результаты улья date(yyyy-MM-dd)!

Пример:

hive> select to_date(from_unixtime(unix_timestamp('20190303164305', 'yyyyMMddHHmmss'),"yyyy-MM-dd HH:mm:ss")) as date_data_chamada;

--2019-03-03
0 голосов
/ 12 февраля 2020

Передать второй аргумент форматную строку в from_unixtime. Обратите внимание, что возвращаемый тип - string.

from_unixtime(unix_timestamp('20190303164305','yyyyMMddHHmmss'),'yyyy-MM-dd HH:mm:ss')
...