2012-04-12 4 views
4

Я пытаюсь ввести дату в базе данных оракула, используя to_date в readyStatement, но я получаю ошибки.Использование oracle to_date в readyStatement

Код Фрагменты:

sql = "select Identifier from metadata where content_cdate >=to_date(?,'dd-mm-yyyy') and content_cdate < to_date(?,'dd-mm-yyyy') and status='published' and content_mdate is null"; 

ps.setString(1, commonUtil.dateToString(startTime)); 

метод dateToString возвращает значение, как это: 2012-01-01 12:00:00

Ошибка:

[Oracle][ODBC][Ora]ORA-01861: literal does not match format string 

Пожалуйста, советы.

ответ

7

Вы должны использовать правильную маску формата TO_DATE для соответствия вашему вводу.

В вашем случае, скорее всего: TO_DATE(?,'YYYY-MM-DD HH24:MI:SS')

+0

в дБ дата в сохраняются в формате дд-мм-гггг. Изменится ли это изменение на другие ошибки? –

+0

Что значит хранится в формате 'dd-mm-yyyy'? Как «VARCHAR2»? Если это один из типов дат, он хранится во внутреннем представлении и отображается вам в соответствии с вашим 'NLS_DATE_FORMAT'. – Anonymous

+0

теперь я получаю ошибку, подобную этой '[Oracle] [ODBC] [Ora] ORA-01810: формат кода появляется дважды' –

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