Следующий SQL при запуске с этими параметрами,диапазон дат в гадательных приложениях отчет
: P_COMP_DATE_FROM = '15 -NOV-2015' : P_COMP_DATE_TO = '15 -NOV-2015'
сравнивает, как между '15 -NOV-2015 00:00:00' и '15 -NOV-2015 00:00:00'
Select Ordered_date
From xxcost_rep
Where DATE_COMPLETED BETWEEN NVL(fnd_date.canonical_to_date(:P_COMP_DATE_FROM), DATE_COMPLETED) AND NVL(fnd_date.canonical_to_date(:P_COMP_DATE_TO)), DATE_COMPLETED);
как я могу сравнить это как начало дня и в конце дня, так что может отобразить правильный результат в диапазоне.
Я пытаюсь следующим добавить 86399 секунд, чтобы сделать это в конце дня, но ошибки приема:
WHERE DATE_COMPLETED BETWEEN NVL(fnd_date.canonical_to_date(:P_COMP_DATE_FROM), DATE_COMPLETED) AND NVL(fnd_date.canonical_to_date(to_date(:P_COMP_DATE_TO,'DD-MON-YYYY')+interval '86399' second), DATE_COMPLETED)
{P_TO_CUSTOMER=, P_COMP_DATE_FROM=2015/11/15 00:00:00, P_COMP_DATE_TO=2015/11/15 00:00:00, P_TO_ORDER_NUMBER=, P_CUST_REGION=, P_TO_DATE=, P_JOB_STATUS=, P_FROM_DATE=, P_FROM_ORDER_NUMBER=, P_FROM_CUSTOMER=} Calling XDO Data Engine... --SQLException java.sql.SQLDataException: ORA-01861: literal does not match format string
Почтовый индекс из 'fnd_date.canonical_to_date'. Ошибка связана с тем, что вы в зависимости от вашего локального формата даты ** NLS **, который отличается от того, что вы используете. вы всегда должны явно предоставлять маску формата ** **. –
Не передавайте даты как строки. Используйте правильные переменные 'date'. Тогда вам также не нужно, чтобы обходной путь использовал вашу собственную функцию для преобразования строки в дату. –