Конвертировать символ в дату - Улей - PullRequest
0 голосов
/ 07 февраля 2020

Мне нужно конкат 2 символа столбца в дате 1 столбца. Я пробовал:

INSERT INTO tb_teste PARTITION (dt_originacao_fcdr)
SELECT
tp_registro_fcdr,
seq_registro_fcdr,
tp_cdr_fcdr,
dt_atendimento_fcdr,
date_dt_atendimento_fcdr,
hr_atendimento_fcdr,
timestamp(from_unixtime(unix_timestamp(CONCAT(dt_atendimento_fcdr, hr_atendimento_fcdr), 'yyyyMMddHHmmss')), "yyyy-MM-dd HH:mm:ss") as date_hr_atendimento_fcdr,
duracao_atend_fcdr,
hr_originacao_fcdr,
duracao_total_fcdr,
duracao_chamada_tarifada_fcdr,
st_chamada_fcdr,
fim_sel_orig_fcdr,
numero_a_fcdr,
tp_numero_a_fcdr,
numero_b_fcdr,
tp_numero_b_fcdr,
numero_b_orig_fcdr,
numero_c_fcdr,
tp_numero_c_fcdr,
tp_trafego_fcdr,
esn_fcdr,
central_fcdr,
erb_fcdr,
tp_erb_fcdr,
face_erb_inici_fcdr,
erb_final_fcdr,
face_erb_final_fcdr,
erb_original_fcdr,
imsi_fcdr,
imei_fcdr,
tecnologia_fcdr,
cd_oper_ass_a_fcdr,
cd_oper_ass_b_fcdr,
cgi_fcdr,
nu_tlfn_fcdr,
tp_tlfn_fcdr,
tp_tarifa_fcdr,
ident_num_a_fcdr,
ident_num_b_fcdr,
cd_prestadora_fcdr,
cna_orig_ar_erb_fcdr
FROM tb_op_nor;

Результат: date_hr_atendimento_fcdr 2019-03-03

Столбец, содержащий время и дату, не является нулевым или пустым. Пример:

enter image description here enter image description here

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

Мне нужны дата и время в те же столбцы.

1 Ответ

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

Вы можете concat два поля, затем unix_timestamp и с помощью функции from_unixtimestamp мы можем отформатировать временную метку вывода.

with cte as (select stack(1,"20190303","131615") as (dt,hr)) --sample data
select 
timestamp( --cast to timestamp
        from_unixtime(unix_timestamp(concat(dt,hr),'yyyyMMddHHmmss'),"yyyy-MM-dd HH:mm:ss") --concat and change the format
        ) 
from cte

Output:

2019-03-03 13:16:15.0

Если вы хотите преобразовать в бразильское время в UT C или наоборот, тогда используйте to_utc_timestamp / from_utc_timestamp .

...