Utilice esta línea:
startDate TIMESTAMP := endDate - ($3 || ' MONTH')::INTERVAL;
y tenga en cuenta el espacio antes de MONTH
.Básicamente:construyes una cadena con 4 MONTH
y lanzarlo con ::type
en un intervalo adecuado.
Editar :He encontrado otra solución:puedes calcular con interval
así:
startDate TIMESTAMP := endDate - $3 * INTERVAL '1 MONTH';
Esto se ve un poco mejor para mí.