简体   繁体   English

postgresql:将变量传递给sql查询

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM