Это даст все записи от 1 года до сегодняшнего дня:
SELECT * FROM reservations
WHERE date >= trunc( sysdate ) - interval '1' year
AND date < trunc( sysdate ) + interval '1' day
Я хочу выполнить вышеуказанный запрос с интервалом в 1 месяц,
Я понимаю, что вы хотите выполнить этот запрос 12 раз, каждый раз в течение другого месячного периода.Если да, то выполните этот запрос 12 раз, изменив параметр X (в пределах SELECT 1 As X FROM dual
подзапроса), начиная с 12 до 1 (или от 1 до 12):
SELECT * FROM reservations
CROSS JOIN (
SELECT 1 As X FROM dual
) x
WHERE date >= trunc( sysdate ) - x * interval '1' month
AND date < trunc( sysdate ) + interval '1' day - ( x - 1 ) * interval '1' month