Re: subtract a day from the NOW function

From: Michael Glaesemann <grzm(at)seespotcode(dot)net>
To: "Campbell, Lance" <lance(at)uiuc(dot)edu>
Cc: <pgsql-sql(at)postgresql(dot)org>
Subject: Re: subtract a day from the NOW function
Date: 2007-06-07 17:27:03
Message-ID: 9938A77A-6E63-413D-8AC9-7CB741D075E6@seespotcode.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general pgsql-sql

> From: pgsql-sql-owner(at)postgresql(dot)org [mailto:pgsql-sql-
> owner(at)postgresql(dot)org] On Behalf Of Campbell, Lance
> Sent: Thursday, June 07, 2007 11:09 AM
> To: pgsql-sql(at)postgresql(dot)org
> Subject: [SQL] subtract a day from the NOW function
> SELECT some_timestamp WHERE to_char(some_timestamp, ‘YYYYMMDD’) >
> (to_char(now(), ‘YYYYMMDD’) – 1 day);

On Jun 7, 2007, at 11:36 , Campbell, Lance wrote:
> select to_char((now() - interval '1 day'), 'YYYYMMDD');

Why are you using to_char? Timestamps and dates support comparisons
just fine.

SELECT CURRENT_TIMESTAMP > (CURRENT_TIMESTAMP - INTERVAL '1 day');
?column?
----------
t
(1 row)

CURRENT_TIMESTAMP is SQL-spec for now().

If you're specifically looking to compare dates rather than
timestamps, you can cast timestamp to date:

SELECT CURRENT_DATE > (CURRENT_DATE - INTERVAL '1 day')::date;
?column?
----------
t
(1 row)

You could also use the age function:

SELECT age(CURRENT_TIMESTAMP) < INTERVAL '1 day';

SELECT age(CURRENT_TIMESTAMP) < INTERVAL '1 day';
?column?
----------
t
(1 row)

Hope that helps.

Michael Glaesemann
grzm seespotcode net

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Lonni J Friedman 2007-06-07 17:47:34 querying the age of a row
Previous Message Alvaro Herrera 2007-06-07 17:02:42 the perfect mail archival system

Browse pgsql-sql by date

  From Date Subject
Next Message Andrew Sullivan 2007-06-07 17:46:39 Re: the right time to vacuum database?
Previous Message Campbell, Lance 2007-06-07 16:39:10 Re: subtract a day from the NOW function