Строка на сегодняшний день в Oracle с миллисекундами - PullRequest
22 голосов
/ 18 ноября 2009

Я хочу преобразовать следующую строку в дату:

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, есть предложения?

Ответы [ 2 ]

59 голосов
/ 18 ноября 2009

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
4 голосов
/ 18 ноября 2009

Я не думаю, что вы можете использовать доли секунды с to_date или типом DATE в Oracle. Я думаю, что вам нужно to_timestamp, который возвращает тип TIMESTAMP.

...