Как конвертировать VARCHAR в дату в ORACLE SQL? - PullRequest
0 голосов
/ 11 февраля 2020

У меня в таблице есть это поле:

2020-01-16T10:55:16..296518000

Как преобразовать этот Varchar в дату в формате 'YYYY-MM-DD'?

Я пытался:

select TRUNC(to_date(DATE_UPDATED ,'YYYY-MM-DD hh24:mi:ss'))  from JOB_SCHEDULE_TBL

но я получаю ошибку:

ORA-01830: date format picture ends before converting entire input string

Ответы [ 2 ]

2 голосов
/ 11 февраля 2020

Просто используйте substr():

select to_date(SUBSTR(DATE_UPDATED, 1, 10) ,'YYYY-MM-DD')

trunc() не требуется.

1 голос
/ 11 февраля 2020

Вы путаете формат DATE с тем, что видите на экране. Тип данных DATE не имеет «формата». Это Oracle внутренний, двоичный формат. Даже когда вы SELECT TO_DATE ..., результат будет отображаться клиентом, и для этого клиент должен будет (* под прикрытием) указать TO_CHAR на полученном DATE. И это подразумевает, что to_char будет использовать текущую систему / сессию / настройки для TNS_DATE_FORMAT.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...