Преобразование varchar с не числовым символом на сегодняшний день - PullRequest
0 голосов
/ 10 апреля 2019

У меня есть дата, подобная 'Mon Sep 14 09:03:10 +0000 2015', что мне не удалось преобразовать их в формат даты

Уже пробовал to_date / to_timestamp и другие спецификации формата

Например:

select TO_TIMESTAMP_TZ('Mon Sep 14 09:03:10 +0000 2015') from dual;

Я ожидаю получить что-то вроде 'DD/MM/YYYY'.

Ответы [ 3 ]

0 голосов
/ 10 апреля 2019

В Oracle:

select 
TO_CHAR(CAST(SUBSTR(TO_TIMESTAMP_TZ('Mon Sep 14 09:03:10 +0000 2015', 'DY Mon dd HH24:MI:SS TZHTZM YYYY'),1,9) AS DATE),'DD/MM/YYYY')
from dual;

Выход:

14/09/2015
0 голосов
/ 11 апреля 2019

Хорошо, так что решение Gen Wan работает довольно хорошо, и в конце я был близок к решению, но мне пришлось поменять язык sqldevelopper на английский, чтобы работать.Если вы используете Sql developper на другом языке, он не распознает формат отметки времени, отвечающий «это недействительный день недели».

Итак, решение Gen Wan: выберите TO_CHAR (CAST (SUBSTR (TO_TIMESTAMP_TZ ('Пн. 14 сентября 09:03:10 +0000 2015', 'DY Пн дд HH24: MI: СС ТЖТЗМ ГГГГ'), 1,9) КАК ДАТА), "ДД / ММ / ГГГГ") из двойного;

Спасибо ему большое!

0 голосов
/ 10 апреля 2019

Это должно работать в Oracle:

select TO_TIMESTAMP_TZ('Mon Sep 14 09:03:10 +0000 2015', 'DY MON dd HH24:MI:SS TZHTZM YYYY')
from dual;
...