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