Изменить системные даты предложения - PullRequest
0 голосов
/ 26 марта 2019

У нас есть новый программный пакет, который позволяет компании писать код SQL для размещения на порталах запросов. У нас есть несколько отчетов, которые мы хотим закодировать, используя предыдущий день как один из вариантов. Если отчет запускается в понедельник, мы хотим автоматически выбрать предыдущую пятницу в качестве даты выбора. У нас есть ORACLE SQL DEVELOPER 4.1. Код, который мы пытаемся использовать, указан ниже:

SELECT ALERT_CD,ALERT_KEY,CHG_DTM,
CASE  
WHEN TO_CHAR(SYSDATE,'fmday')='sunday' 
THEN SYSDATE-2 
WHEN TO_CHAR(SYSDATE,'fmday')='monday' 
THEN SYSDATE-3 
ELSE SYSDATE-1 
END "change" 
FROM SG00400T 
WHERE ALERT_CD='AUTO'
and CHG_DTM >= to_date('SYSDATE', 'mm/dd/yyyy')

Ошибка, которую мы получаем:

ORA-01858: a non-numeric character was found where a numeric was expected
01858. 00000 -  "a non-numeric character was found where a numeric was expected"
*Cause:    The input data to be converted using a date format model was
           incorrect.  The input data did not contain a number where a number was
           required by the format model.
*Action:   Fix the input data or the date format model to make sure the
           elements match in number and type.  Then retry the operation.

CHG_DTM - это поле даты / времени, которое может быть частью проблемы, которую мы до конца не понимаем. Любая помощь будет принята с благодарностью.

1 Ответ

6 голосов
/ 26 марта 2019

Выражение to_date('SYSDATE', 'mm/dd/yyyy') пытается преобразовать строковую константу 'SYSDATE' в дату - что не может работать.

Но вы должны никогда , никогда не вызывать to_date() для значения, которое уже является датой. Сначала будет преобразовано значение date в varchar, чтобы преобразовать varchar в date, с которого оно должно было начаться.

Так что функция to_date() в этом месте неверна с самого начала. Скорее всего, вы хотите:

and CHG_DTM >= trunc(SYSDATE)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...