Преобразовать строковую дату в datetime в Oracle - PullRequest
20 голосов
/ 27 октября 2011

Как мне преобразовать эту строковую дату в datetime в oracle.

2011-07-28T23:54:14Z

При использовании этого кода выдается ошибка:

TO_DATE('2011-07-28T23:54:14Z',  'YYYY-MM-DD HH24:MI:SS')

Как это можно сделать?

Error report:
SQL Error: ORA-01861: literal does not match format string
01861. 00000 -  "literal does not match format string"
*Cause:    Literals in the input must be the same length as literals in
           the format string (with the exception of leading whitespace).  If the
           "FX" modifier has been toggled on, the literal must match exactly,
           with no extra whitespace.
*Action:   Correct the format string to match the literal.

Обновление: -

TO_DATE ('2011-07-28T23: 54: 14Z', 'YYYY-MM-DD "T" HH24: MI: SS "Z"')

Я вижу только дату, а не время в столбце

28-JUL-11

Ответы [ 3 ]

43 голосов
/ 27 октября 2011

Попробуйте это: TO_DATE('2011-07-28T23:54:14Z', 'YYYY-MM-DD"T"HH24:MI:SS"Z"')

0 голосов
/ 27 марта 2017

Вы можете использовать приведение к символу, чтобы увидеть результаты даты

 select to_char(to_date('17-MAR-17 06.04.54','dd-MON-yy hh24:mi:ss'), 'mm/dd/yyyy hh24:mi:ss') from dual;
0 голосов
/ 21 февраля 2017

Эй, у меня была такая же проблема.Я попытался преобразовать varchar '2017-02-20 12:15:32' в дату с TO_DATE('2017-02-20 12:15:32','YYYY-MM-DD HH24:MI:SS'), и все, что я получил, было 2017-02-20, время исчезло

Мое решение состояло в том, чтобы использовать TO_TIMESTAMP('2017-02-20 12:15:32','YYYY-MM-DD HH24:MI:SS') теперь время не исчезает.

...