Search Postgresql Archives

Re: Passing varchar parameter to INTERVAL

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,
On Wed, 2016-09-07 at 15:05 +0200, Alexander Farber wrote:
> 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
> 


I think the interval values need to be quoted.
In any event I always use the P or T syntax. 'P1D' means add one day,
etc.

HTH,
Rob


-- 
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux