01830. 00000 - «картинка в формате даты заканчивается перед преобразованием всей входной строки» - PullRequest
0 голосов
/ 27 сентября 2018
select to_date('13/03/17 05:43:29,000000000 PM -05:00DD/MM/YY HH24:MI:SS') from 
irregularities;

Как преобразовать эту дату в 24-часовой формат?

1 Ответ

0 голосов
/ 28 сентября 2018

Вы можете преобразовать строку в метку времени с часовым поясом, используя:

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().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...