Я видел подобные сообщения, но я не могу решить свой вопрос.
Я пытаюсь запросить таблицу со столбцом («ЗНАЧЕНИЕ») типа данных VARCHAR2.
Строки в этом столбце смешаны как с числовыми значениями, так и со значениями даты (я не знаю, почему даты были сохранены как VARCHAR2).
Мне нужны только даты, и я отфильтровал строки с помощью функции LIKE.
SELECT
PARENTID,
NAME,
VALUE
FROM TIMINGEVENT
WHERE NAME like 'last%'
;
Теперь в столбце есть только даты, и мне нужно преобразовать VARCHAR2 в дату.
PARENTID ++ NAME ++ VALUE
1701480 ++ lastCycle1 ++
1701480 ++ lastCycle2 ++
1701480 ++ lastCycle3 ++ 20150901092520 AM
1701480 ++ lastCycle4 ++ 20150901092834 AM
1701480 ++ lastCycle5 ++ 20150901085047 AM
Мои попытки использовать TO_DATE привели к следующей ошибке:
ORA-01858: вместо числового символа был найден нечисловой
Я использую Oracle 11g SQL Developer, а в настройках NLS для формата даты установлено значение DD-MON-RR.
Я нашел приведенный ниже подход в другом сообщении, но когда я его использую, он выдает следующую ошибку?
SELECT
PARENTID,
NAME,
VALUE,
TO_CHAR(TO_DATE(VALUE, 'MM/DD/YYYY'), 'MM/DD/YYYY') AS "test"
FROM TIMINGEVENT
WHERE NAME like 'last%'
;
ORA-01843: not a valid month
01843. 00000 - "not a valid month"