Re: Verifying a timestamp is null or in the past

From: Alexander Farber <alexander(dot)farber(at)gmail(dot)com>
To: pgsql-general <pgsql-general(at)postgresql(dot)org>
Subject: Re: Verifying a timestamp is null or in the past
Date: 2011-12-30 18:34:16
Message-ID: CAADeyWinVfn3oHxik3-KiV7wkWq+OvSCwcmX60NAqxSB_GEOkA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Awesome advices here.

Thank you and happy new year.

On Fri, Dec 30, 2011 at 2:07 PM, Alban Hertroys <haramrae(at)gmail(dot)com> wrote:
> select 1 from pref_users where id=_from and vip > current_timestamp + interval '1 week';
>
> if not found then
>    return;
> end if;
>
> "found" is a special pl/psql keyword that tells whether the last query returned any results or not. Using that you can get rid of the entire declare-block in your function ;)
>
> Originally I tacked a "vip is not null or" before the check in the where-clause, but that's unnecessary - if vip is null, then the expression also evaluates to null and the where-clause will treat it as false. That's one of the peculiarities of SQL... For posterity's sake it may be better to add that part to the query anyway, that's up to personal preference:
>
> select 1 from pref_users where id=_from and (vip is not null or vip > current_timestamp + interval '1 week');

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Tom Lane 2011-12-30 18:34:44 Would whoever is at "Hi-Tech Gears Ltd, Gurgaon, India" fix their mailer?
Previous Message Tom Lane 2011-12-30 18:27:52 Re: Data Type for Money