Reputation: 6045
I'm trying to pass a variable to a select statement using PostgreSQL. The overall goal is to use this logic in a stored procedure where the variable deadline_interval
would be an input parameter. 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. What am I doing wrong here?
Upvotes: 0
Views: 303
Reputation: 37487
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.
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;
$$
Upvotes: 1