在PostgreSQL中向CURRENT_TIMESTAMP添加分钟

One*_*art 28 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;
Run Code Online (Sandbox Code Playgroud)

我想将最小分钟添加到CURRENT_TIMESTAMP谢谢

stv*_*stv 53

您可以用整数乘以间隔.以下为您提供未来20分钟的时间戳:

select current_timestamp + (20 * interval '1 minute')
Run Code Online (Sandbox Code Playgroud)

或者,正如穆里森在对这个问题的另一个答案中提到的那样,有一种更简洁的表达方式:

select current_timestamp + (20 ||' minutes')::interval
Run Code Online (Sandbox Code Playgroud)

所以,你的代码看起来像:

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;
Run Code Online (Sandbox Code Playgroud)

  • 更新:“选择‘20 分钟’::间隔”工作正常,至少现在是 5 年后。 (2认同)

mur*_*son 26

另一种方式是

select current_timestamp + (20 ||' minutes')::interval
Run Code Online (Sandbox Code Playgroud)