2013-05-02 3 views
1

Этот запрос отлично работает в разработчике Oracle SQL, но выдает ошибку в коде при отладке. Он выдает сообщение об ошибке: Недействительный месяц. Почему один и тот же запрос будет отлично работать в SQL-разработчике, но сломает код?Ошибка Oracle: выдает ошибку недействительного месяца в отладчике, но отлично работает в разработчике Oracle SQL

Дата запроса: Дата Тип данных 01-JAN-13 Формат Request Time является Char тип данных 10:11:12 Формат

SELECT 
TO_TIMESTAMP((TASKTB.REQUESTDATE || TASKTB.REQUESTTIME), 'DD.MM.YY:HH24:MI:SS') "Scheduled Time", 
FROM 
TASKTB.TaskType, 
WHERE (TASKTB.TASKTYPE = LISTTB.VALUE) 
+1

Почему вы храните одну временную метку в двух столбцах varchar? Это одна из самых больших ошибок, которые вы можете сделать. Исправьте ваш datamodel, и ошибка исчезнет. –

+0

Это не может быть исправлено прямо сейчас. Мне нужно выяснить альтернативный способ исправить этот запрос. Спасибо – PSM

+0

Пока вы не исправляете проблему * real *, вы снова и снова будете сталкиваться с этой проблемой. –

ответ

1

попробовать это ...

SELECT 
TO_TIMESTAMP((to_char(TASKTB.REQUESTDATE,'DD.MM.YY') ||':'|| TASKTB.REQUESTTIME), 'DD.MM.YY:HH24:MI:SS') "Scheduled Time", 
FROM 
TASKTB.TaskType, 
WHERE (TASKTB.TASKTYPE = LISTTB.VALUE) ; 

если REQUESTDATE является date date, как вы говорите ... тогда вам нужно выполнить явное «to_char» в желаемый формат.

+0

Спасибо! Это работает! – PSM

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