как преобразовать формат строки, такой как 17 августа, в дату в оракуле - PullRequest
0 голосов
/ 07 ноября 2018

У меня есть таблица, и одно из полей относится к типу данных varchar2, оно хранит некоторую дату в строковом формате, таком как 17 августа, 18 сентября и т. Д. Я хочу отсортировать это поле по реальной дате, а не по алфавиту, как можно Я конвертирую эти значения в дату?

1 Ответ

0 голосов
/ 07 ноября 2018

Вы можете попробовать использовать TO_DATE функцию записи 'Mon YY' format, чтобы второй параметр включал язык, чтобы убедиться, что формат и order by его. (спасибо за замечание @Wernfried Domscheit)

SELECT TO_DATE('Aug 17','Mon RR', 'nls_date_language = american')
FROM DUAL

Вот образец

with cte as (
    SELECT 'Aug 17' dt
    FROM DUAL
    UNION ALL
    SELECT 'Sep 18'
    FROM DUAL
)

select To_char(TO_DATE(dt,'Mon RR', 'nls_date_language = american'),'Mon YY')
from cte
order by TO_DATE(dt,'Mon RR', 'nls_date_language = american') desc

sqlfiddle

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