[英]postgresql: pass variable to sql query
I'm trying to pass a variable to a select statement using PostgreSQL. 我正在尝试使用PostgreSQL将变量传递给select语句。 The overall goal is to use this logic in a stored procedure where the variable deadline_interval
would be an input parameter. 总体目标是在存储过程中使用此逻辑,在该存储过程中,变量deadline_interval
将作为输入参数。 Here's what I've tried so far: 到目前为止,这是我尝试过的方法:
DO
$$
DECLARE
date_deadline date;
deadline_interval varchar := '6 month';
BEGIN
date_deadline := (SELECT CURRENT_DATE - INTERVAL deadline_interval);
RAISE NOTICE 'here: %', date_deadline;
END;
$$
Unfortunately the variable deadline_interval
is undefined in the select statement. 不幸的是,在select语句中未定义变量deadline_interval
。 What am I doing wrong here? 我在这里做错了什么?
Use a cast instead of the prefix. 使用强制转换而不是前缀。
...
date_deadline := (SELECT CURRENT_DATE - deadline_interval::interval);
...
Or, even better, use interval
as type for deadline_interval
from the beginning. 或者,甚至更好的是,从一开始就将interval
作为deadline_interval
interval
类型。
DO
$$
DECLARE
date_deadline date;
deadline_interval interval := INTERVAL '6 month';
BEGIN
date_deadline := (SELECT CURRENT_DATE - deadline_interval);
RAISE NOTICE 'here: %', date_deadline;
END;
$$
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.