Полагаю, вы говорите, что столбец даты - это фактически восьмизначное числовое поле, в котором содержатся значения, которые мы интерпретируем как даты. Я также предполагаю, что вы выполняете эти запросы непосредственно к базе данных i5.
Вы хотите преобразовать дату в числовое значение ГГГГММДД, а затем выполнить запрос к полю ГГГГММДД. Преобразование значения ГГГГММДД в базе данных в дату и сравнение с этим потребует преобразования каждого значения, что исключит возможность использования индекса по этому столбцу. Это также открывает вам проблемы из-за неправильных дат в поле ГГГГММДД.
Вот пример преобразования вычисления даты в восьмизначное число в виде ГГГГММДД:
select year(current_date - 1 month) * 10000 +
month(current_date - 1 month) * 100 +
day(current_date - 1 month)
from sysibm.sysdummy1
Вы можете использовать это в запросе, подобном этому:
select *
from libname.tablename
where date_field >=
year(current_date - 1 day) * 10000 +
month(current_date - 1 day) * 100 +
day(current_date - 1 day)
Альтернативой является использование такого инструмента, как IDATE. Это значительно упрощает преобразование чисел в даты. Перейдите по этой ссылке и найдите IDATE для получения дополнительной информации об этой опции.