Вы можете восстановить действительную дату из этих частей с помощью to_date()
и использовать ее для фильтрации:
where to_date(cycle_year || '-' || cycle_month || '-01', 'yyyy-mm-dd')
>= trunc(sysdate, 'mon') - interval '6' month
Я бы не рекомендовал хранить ваши даты как отдельные части, так как это делает вещи излишне сложными когда вам нужно рассматривать их как даты. Вы можете использовать вычисляемый столбец для упрощения запросов:
alter table mytable add
mydate as (to_date(cycle_year || '-' || cycle_month || '-01', 'yyyy-mm-dd'))
Тогда вы можете просто сделать:
where mydate >= trunc(sysdate, 'mon') - interval '6' month