Use esta linha:
startDate TIMESTAMP := endDate - ($3 || ' MONTH')::INTERVAL;
e observe o espaço antes de
MONTH
.Basicamente:você constrói uma string como 4 MONTH
e converta-o com ::type
em um intervalo adequado. Editar :Encontrei outra solução:você pode calcular com
interval
assim:startDate TIMESTAMP := endDate - $3 * INTERVAL '1 MONTH';
Isso parece um pouco mais legal para mim.