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í.