Ответ 1
Вы можете умножать интервалы на целые числа. Следующее дает вам отметку времени 20 минут в будущем:
select current_timestamp + (20 * interval '1 minute')
Или, как упоминает муресон в другом ответе на этот вопрос, есть более сжатый способ выразить это:
select current_timestamp + (20 ||' minutes')::interval
Таким образом, ваш код может выглядеть так:
CREATE OR REPLACE FUNCTION modify_time(id users.id%TYPE, min integer) AS $$
BEGIN
UPDATE
users
SET
modified_at = CURRENT_TIMESTAMP + (min * interval '1 minute')
WHERE
user_id = id;
END
$$ LANGUAGE plpgsql;