我在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 感谢
答案 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