Используя переменный период в интервале в Postgres

У меня есть отношение, которое поддерживает ежемесячные исторические данные. Эти данные добавляются в таблицу в последний день каждого месяца. Затем можно вызвать службу, которую я пишу, с указанием месяца и количества месяцев, за которые нужно получить исторические данные. Я делаю это, создавая переменные startDate и endDate, а затем возвращая данные между ними. Проблема, с которой я столкнулся, заключается в том, что startDate - это переменное количество месяцев до endDate, и я не могу понять, как использовать переменный период в интервале.

Вот что у меня:

    DECLARE
      endDate   TIMESTAMP := (DATE_TRUNC('MONTH',$2) + INTERVAL '1 MONTH') - INTERVAL '1 DAY';
      startDate TIMESTAMP := endDate - INTERVAL $3 'MONTH';

Я знаю, что строка для startDate неверна. Как это правильно сделать?

45
задан Belizzle 17 October 2011 в 16:24
поделиться