在PostgreSQL中向CURRENT_TIMESTAMP添加分钟

时间:2014-02-13 04:15:31

标签: postgresql

我在PostgreSQL中有一个程序,我想在CURRENT_TIMESTAMP中添加分钟数,如下所示

timestamp_var:= CURRENT_TIMESTAMP + interval '20 minutes';

但分钟数是一个参数。

我们有这样做的功能吗?

请在这种情况下帮助我

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;

我想将 min 分钟添加到CURRENT_TIMESTAMP 感谢

2 个答案:

答案 0 :(得分:40)

您可以将间隔乘以整数。以下为您提供20分钟的时间戳:

select current_timestamp + (20 * interval '1 minute')

或者,正如 murison 在另一个answer中提到这个问题,有一种更简洁的表达方式:

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;

答案 1 :(得分:25)

另一种方式是

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