Вы можете преобразовать строку в метку времени с часовым поясом, используя:
select to_timestamp_tz('13/03/17 05:43:29,000000000 PM -05:00',
'DD/MM/RR HH:MI:SS,FF9 AM TZH:TZM')
from dual;
Если вам нужен только тип данных даты, вы можете привести его:
select cast(
to_timestamp_tz('13/03/17 05:43:29,000000000 PM -05:00',
'DD/MM/RR HH:MI:SS,FF9 AM TZH:TZM')
as date)
from dual;
Если вына самом деле нужна только строковая версия, которую вы можете преобразовать обратно, что вы обычно делаете только для отображения:
select to_date(
to_timestamp_tz('13/03/17 05:43:29,000000000 PM -05:00',
'DD/MM/RR HH:MI:SS,FF9 AM TZH:TZM'),
'DD/MM/YYYY HH24:MI:SS')
from dual;
Если исходная строка исходит из таблицы, просто замените текстовый литерал на имя столбца,и dual
с вашим именем таблицы.Конечно, это предполагает, что столбец на самом деле является строкой.Если на самом деле это уже временная метка и ваш клиент просто отображает ее так, как вам не нравится, вам нужна только часть to_char()
.
Подробнее об этих вещах см. В документации: to_timestamp_tz
, модели формата , cast()
и to_char()
.