2014-12-03 3 views
2

Мне нужно преобразовать строку в Date в oracle.Oracle to_date с p.m./a.m

Формат строки, как это:

'08/11/1999 05:45:00 p.m.' 

Но последнее положение может измениться вечера или я Я пытался сделать некоторые вроде:

to_date('08/11/1999 05:45:00 p.m.', 'dd/mm/yyyy hh:mi:ss a.m./p.m.') 

to_date('08/11/1999 05:45:00 p.m.', 'dd/mm/yyyy hh:mi:ss am/pm') 

Но вернуть мне ошибку ORA -01855: AM/AM или PM/P.M. требуется ... любая идея?

ответ

4

Попробуйте это:

to_date 
    ('08/11/1999 05:45:00 p.m.' 
    , 'dd/mm/yyyy hh:mi:ss a.m.' 
    , 'nls_date_language=american' 
) 

Похоже, что "утро" и " а не «am» и «pm» требуют, чтобы nls_date_language был установлен на «american».

+0

Да это работает, спасибо –

1

для преобразования времени для am и pm, просто дать a.m., как показано ниже

to_date(UPPER('08/11/1999 05:45:00 p.m.'),'dd/mm/yyyy hh:mi:ss a.m.') 

надеюсь, что это может помочь. см https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions183.htm

+0

Это решение не сработало, это возвращает мне ошибку ORA-01855: AM/A.M. или PM/P.M. требуется –

+0

, тогда попробуйте с функцией верхнего уровня, сделайте редактирование – Exhausted

Смежные вопросы