У меня есть отношение, которое поддерживает ежемесячные исторические данные. Эти данные добавляются в таблицу в последний день каждого месяца. Затем можно вызвать службу, которую я пишу, с указанием месяца и количества месяцев, за которые нужно получить исторические данные. Я делаю это, создавая переменные startDate и endDate, а затем возвращая данные между ними. Проблема, с которой я столкнулся, заключается в том, что startDate - это переменное количество месяцев до endDate, и я не могу понять, как использовать переменный период в интервале.
Вот что у меня:
DECLARE
endDate TIMESTAMP := (DATE_TRUNC('MONTH',$2) + INTERVAL '1 MONTH') - INTERVAL '1 DAY';
startDate TIMESTAMP := endDate - INTERVAL $3 'MONTH';
Я знаю, что строка для startDate неверна. Как это правильно сделать?