Строка на сегодняшний день в Oracle с миллисекундами
Я хочу преобразовать следующую строку:
2004-09-30 23:53:48,140000000
Я пробовал:
to_date('#', 'YYYY-MM-DD HH24:MI:SS,FF9')
Но PL/SQL продолжает метать эту ошибку:
ORA-01821: date format not recognized.
FF9 неверно для Oracle, любое предложение?
Ответы
Ответ 1
Oracle
хранит только доли до секунды в поле DATE
.
Вместо этого используйте TIMESTAMP
:
SELECT TO_TIMESTAMP('2004-09-30 23:53:48,140000000', 'YYYY-MM-DD HH24:MI:SS,FF9')
FROM dual
возможно, приведя его к DATE
, а затем:
SELECT CAST(TO_TIMESTAMP('2004-09-30 23:53:48,140000000', 'YYYY-MM-DD HH24:MI:SS,FF9') AS DATE)
FROM dual
Ответ 2
Я не думаю, что вы можете использовать дробные секунды с to_date или тип DATE в Oracle. Я думаю, вам нужно to_timestamp, который возвращает тип TIMESTAMP.