From: | Alexander Farber <alexander(dot)farber(at)gmail(dot)com> |
---|---|
To: | pgsql-general <pgsql-general(at)postgresql(dot)org> |
Subject: | Passing varchar parameter to INTERVAL |
Date: | 2016-09-07 13:05:38 |
Message-ID: | CAADeyWjto+cJ6+LKW799MY2qb3n5t5kqSjkJKFomUWChLiC13Q@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Good afternoon,
when trying to create a custom function to temporary ban a user:
CREATE OR REPLACE FUNCTION words_ban_user(
IN in_uid integer,
IN in_until varchar, -- '1 week' OR '1 month' OR '1 year'
IN in_reason varchar)
RETURNS void AS
$func$
BEGIN
........
UPDATE words_users SET
banned_until = CURRENT_TIMESTAMP + INTERVAL in_until,
banned_reason = in_reason,
vip_until = vip_until + INTERVAL in_until, -- for
paying user
grand_until = grand_until + INTERVAL in_until
WHERE uid = in_uid;
END
$func$ LANGUAGE plpgsql;
in 9.5.4 I unfortunately get the error:
ERROR: syntax error at or near "in_until"
LINE 69: ... banned_until = CURRENT_TIMESTAMP + INTERVAL in_until,
^
Is there please a better way here?
Thank you
Alex
From | Date | Subject | |
---|---|---|---|
Next Message | rob stone | 2016-09-07 13:10:55 | Re: pgadmin4 rc1 query tool performance |
Previous Message | Jehan-Guillaume de Rorthais | 2016-09-07 12:08:16 | Re: PGDATA / data_directory |