Добавьте минуты в CURRENT_TIMESTAMP в PostgreSQL

У меня есть процедура в PostgreSQL, что я хочу добавить количество минут в CURRENT_TIMESTAMP, как показано ниже

timestamp_var: = CURRENT_TIMESTAMP + интервал '20 минут ';

Но количество минут - это параметр.

У нас есть функции для этого?

Помогите мне в этом случае

CREATE OR REPLACE FUNCTION modify_time(id users.id%TYPE, min integer) AS $$ 
BEGIN
UPDATE
        users
    SET
        modified_at = CURRENT_TIMESTAMP
    WHERE
        user_id = id;
END
$$ LANGUAGE plpgsql;

Я хочу добавить минутные минуты в CURRENT_TIMESTAMP

Ответы

Ответ 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;

Ответ 2

другой способ

select current_timestamp + (20 ||' minutes')::interval