Запуск Oracle PL / SQL версия 12.1 на Linux Red Hat 7.7
Я пытаюсь преобразовать следующие поля varchar в метку времени с часовым поясом. Временная метка отформатирована как MMDDYYHH24MMSS. Похоже, что часовой пояс отформатирован с +/-, затем 3-4 цифрами, возможно, в диапазоне от -1200 до +1200, без добавления нуля. Пример:
ts | tz
041320174533 | -700
Мне нужна следующая отметка времени с часовым поясом:
ts_tz
2020-04-13 17:45:33 -07: 00
My попытка (представьте, что жестко запрограммированные значения '041320174533' и '-700' были заменены на ts
и tz
соответственно):
-- Input to to_timestamp_tz '041320174533 -700'
select
to_timestamp('041320174533', 'MMDDYYHH24MISS') as dt
,to_timestamp_tz('041320174533' || ' ' || substr('-700', 1, 1) || '0' || substr('-700', 2, 3),
'MMDDYYHH24MISS TZHTZM') as dt_tz
from dual;
Но результат не имеет часового пояса и не обновляет метку времени. to_timestamp и to_timestamp_tz имеют одинаковый результат:
dt | dt_tz
2020-04-13 17:45:33 | 2020-04-13 17: 45: 33
Как их объединить и получить ожидаемый результат с прикрепленной меткой времени?