2015-04-06 2 views
1

Как указать символьные литералы в спецификации даты? Во втором примере, я хотел бы, чтобы пропустить T и Z.Oracle: Как я могу указать символьные литералы в преобразованиях TO_DATE?

select to_date('2015-04-06 19:56:30', 'YYYY-MM-DD HH24:MI:SS') from dual; 

    2015-04-06 19:56:30         

select to_date('2015-04-06 19:56:30', 'YYYY-MM-DDTHH24:MI:SSZ') from dual; 

    ORA-01821: date format not recognized 
+0

возможно дубликат [Как конвертировать "1985-02-07T00: 00: 00.000Z"? (ISO8601) до значения даты в Oracle] (http://stackoverflow.com/questions/8654292/ как-to-convert-1985-02-07t000000-000z-iso8601-to-a-date-value-in-oracle) –

+0

Ответ может быть одинаковым («использовать двойные кавычки»), но вопрос другой. Непонятно читать руководство, как указать символьные литералы. –

+0

Ну, что касается цитирования литералов в Oracle, это тот же старый старый способ использования двойных кавычек. Который работает и в формате даты. Что касается дублированного вопроса, я просто вставил ваш формат даты в google, и эта ссылка SO была первой в Google ;-) –

ответ

4

Вы можете заключить литералы в двойные кавычки:

SQL> select to_date('2015-04-06T19:56:30Z', 'YYYY-MM-DD"T"HH24:MI:SS"Z"') from dual; 

TO_DATE('2015-04-0 
------------------ 
06-APR-15 
+0

Отлично, спасибо! –

1

Из документации,

Punctuation and Character Literals in Datetime Format Models

Вы можете включить эти символы в формат формата даты:

  • пунктуация, такие как дефис, косая черта, запятые, точки и двоеточия

  • литерных, заключенные в двойные кавычки

Эти символы появляются в возвращаемом значении в то же место, что и , они отображаются в формате.

В соответствии с документацией , содержащий символы символов в двойных кавычках, будет работать в формате.

TO_DATE('2015-04-06T19:56:30Z', 'YYYY-MM-DD"T"HH24:MI:SS"Z"') 
Смежные вопросы