次の行を使用してください:
startDate TIMESTAMP := endDate - ($3 || ' MONTH')::INTERVAL;
MONTHの前のスペースに注意してください 。基本的に:4 MONTHのような文字列を作成します ::typeでキャストします 適切な間隔に。
編集 :別の解決策を見つけました:intervalで計算できます このように:
startDate TIMESTAMP := endDate - $3 * INTERVAL '1 MONTH';
これは私には少し良く見えます。