powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / фильтр по дате
9 сообщений из 9, страница 1 из 1
фильтр по дате
    #37312219
checkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день,
Нужно сделать фильтр по дате в отчете (обычный отчет).
Создаю item P13_DATEP (тип Date Picker (use item format mask), format mask -> DD.MM.YYYY).
Пишу в Region source sql запрос:
...
Код: plaintext
and upper(a.datep) = to_date(:P13_DATEP,'dd.mm.yyyy') or :P13_DATEP='' or ::P13_DATEP=- 1 )
...

Но когда в поиске выбираю какую-нибудь (существующую в отчете) дату, выходит ошибка report error:ORA-01722: invalid number. Подскажите, что делаю не так или может по другому это делается?
...
Рейтинг: 0 / 0
фильтр по дате
    #37312385
freeek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
checkin,

Код: plaintext
and upper(a.datep) = to_date(:P13_DATEP,'dd.mm.yyyy') or :P13_DATEP='' or ::P13_DATEP=- 1 )

: :P13_DATEP=-1 - лишнее двоеточие, это раз.

И, попробуйте не to_date, а to_char, мне помогало.
...
Рейтинг: 0 / 0
фильтр по дате
    #37312437
SvUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
мда. учите SQL.

1. :P13_DATEP строка, а не дата, это, как я понимаю, вы уже разобрались.
2. В SQL запросах выражения сравниваются одного типа. Если не разбираетесь в неявных преобразованиях, преобразуйте везде явно к одному типу слева либо справа от знака равенства! date, varchar2, number, разбирайтесь.
3. '' это null. Изучайте как нужно писать условия на null.
...
Рейтинг: 0 / 0
фильтр по дате
    #37312542
SvUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
checkin
Код: plaintext
and upper(a.datep) = to_date(:P13_DATEP,'dd.mm.yyyy') or :P13_DATEP='' or ::P13_DATEP=- 1 )

Мда, это ж надо умудриться столько ошибок в простейшем sql выражении написать....
...
Рейтинг: 0 / 0
фильтр по дате
    #37312713
checkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
freeek,
не думаю что ошибка из за двоеточии. to_char пробовала, не помогает.
...
Рейтинг: 0 / 0
фильтр по дате
    #37312926
checkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Исправила. Все работает. Спасибо!

a.datep = to_date(:P13_DATEP,'dd.mm.yyyy') or :P13_DATEP is null')
...
Рейтинг: 0 / 0
фильтр по дате
    #37312944
freeek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
checkin,

Код: plaintext
and upper(a.datep) = upper(to_char(:P13_DATEP,'dd.mm.yyyy')) or :P13_DATEP is null or :P13_DATEP='-1')

Только последнее условие мне не очень понятно. Зачем сравнивать дату с минус единицей.
...
Рейтинг: 0 / 0
фильтр по дате
    #37312946
freeek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
checkin,
Это хорошо, только впредь читайте внимательней памятку и давайте больше информации :) Например, формат поля и т.д.
...
Рейтинг: 0 / 0
фильтр по дате
    #37316127
checkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
freeekcheckin,

Код: plaintext
and upper(a.datep) = upper(to_char(:P13_DATEP,'dd.mm.yyyy')) or :P13_DATEP is null or :P13_DATEP='-1')

Только последнее условие мне не очень понятно. Зачем сравнивать дату с минус единицей.

Не сообразила просто. Так я сравнивала когда у меня varchar был. Там у я в Null return value '-1' ставила.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / фильтр по дате
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]