Thread: Using DateDiff with Postgres

Using DateDiff with Postgres

From
jeff@emojo.com (Jeff Rhys-Jones)
Date:
Hi there. I was wondering if anyone can tell me the correct syntax for
using DateDiff for postgrees. I'm using MI (or mi) for minute and I
keep getting attribute 'mi' not found.

I've looked at postgres.org and can't seem to find any ref. to using
datediff.

Many thanks,

Jeff


Re: Using DateDiff with Postgres

From
"Richard Huxton"
Date:
From: "Jeff Rhys-Jones" <jeff@emojo.com>

> Hi there. I was wondering if anyone can tell me the correct syntax for
> using DateDiff for postgrees. I'm using MI (or mi) for minute and I
> keep getting attribute 'mi' not found.
>
> I've looked at postgres.org and can't seem to find any ref. to using
> datediff.

You just subtract dates with PG:

select now() - CURRENT_DATE;

Will return an "interval" type with the elapsed time since midnight. If you
want that in seconds do:

select extract(epoch from (now() - CURRENT_DATE));

Converting to minutes is obviously easy from there.

I think datediff() is a MS-Access thing isn't it?

- Richard Huxton




Re: Using DateDiff with Postgres

From
"Josh Berkus"
Date:
Bruce, Tom, Etc:
This question comes up so often. Can't we have a FAQ about it
somewhere?

Jeff,

> Hi there. I was wondering if anyone can tell me the correct syntax
> for
> using DateDiff for postgrees. I'm using MI (or mi) for minute and I
> keep getting attribute 'mi' not found.

Datediff is not a SQL function. It is a MICROSOFT function, due to MS's
poor implementation of data types.

In PostgreSQL, you simply add and subtract interval values to datetime
values:

'2001-06-27 14:43:21'::DATETIME - '00:10:00'::INTERVAL = '2001-06-27
14:33:21'::DATETIME


'2001-06-27 14:43:21'::DATETIME - '2001-06-27 14:33:21'::DATETIME =
'00:10:00'::INTERVAL

For more information, see "Functions and Operators" in the PostgreSQL
online docs.

-Josh Berkus


______AGLIO DATABASE SOLUTIONS___________________________                                      Josh Berkus Complete
informationtechnology      josh@agliodbs.com  and data management solutions       (415) 565-7293 for law firms, small
businesses       fax 621-2533   and non-profit organizations.      San Francisco