Подтвердить что ты не робот

Строка на сегодняшний день в 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, любое предложение?

4b9b3361

Ответ 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.