Re: querying the age of a row

From: "John D(dot) Burger" <john(at)mitre(dot)org>
To: PostgreSQL General <pgsql-general(at)postgresql(dot)org>
Subject: Re: querying the age of a row
Date: 2007-06-07 19:45:56
Message-ID: 6D87F6C3-2F9B-4CC3-8EA2-BCF4D44190BE@mitre.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Lonni J Friedman wrote:

> I have a need to
> determine which rows in a specific table are less than 24 hours old.
> I've tried (and failed) to do this with the age() function.

And on the suggestion of a timestamp column with DEFAULT NOW():

> Unfortunately, its too late now. The database (and its tables) have
> been around for a while, so even if I added this column, it wouldn't
> help me for the thousands of pre-existing rows.

Er, if you have no such column, what are you testing the AGE() of?
Can you take the age of a row? I can't find that in the docs.

In any event, you say you need to know when a row is less than 24
hours old - that is presumably not an issue for these old rows. I
would add the column as suggested, but set it to some time in the
past for the existing rows. Or, you can set it to NULL,
appropriately if you interpret NULL as unknown, and test the age with
something like this:

where (age(coalesce(ts, '-infinity'::timestamp)) < '24
hours'::interval

- John Burger
MITRE

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Jerry Sievers 2007-06-07 19:49:48 Re: Join field values
Previous Message Alvaro Herrera 2007-06-07 19:43:03 Re: querying the age of a row