Re: [SQL] date_arithmetic revisited

From: Herouth Maoz <herouth(at)oumail(dot)openu(dot)ac(dot)il>
To: Thomas Good <tomg(at)admin(dot)nrnet(dot)org>, "PostgreSQL::SQL List" <pgsql-sql(at)postgreSQL(dot)org>
Subject: Re: [SQL] date_arithmetic revisited
Date: 1999-08-01 16:57:36
Message-ID: l03130307b3ca2a5eb72f@[147.233.159.109]
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

At 17:15 +0300 on 30/07/1999, Thomas Good wrote:

> Is there a way/function that allows me to do simple date arithmetic,
> ala, `SELECT $enddate - startdate;' ?

Sure. Nike.

I mean, just do it. What you get from it depends, of course, on the type of
the fields. If they are of type date, you get the round number of days
between them (the result is of type int4):

testing=> select d_start, d_end, d_end - d_start from test2;
d_start| d_end|?column?
----------+----------+--------
01-15-1969|08-01-1999| 11155
07-14-1999|07-18-1999| 4
04-13-1998|03-12-1998| -32
12-01-1999|12-01-1999| 0
(4 rows)

If they are of type datetime, you get a timespan describing the difference:

testing=> select t_end - t_start as result from test1;
result
----------------------
@ 11154 days 23 hours
@ 4 days
@ 31 days 23 hours ago
@ 0
(4 rows)

If this doesn't suit you, you can take the date_part( 'day', ... ) from the
above operation, but it truncates rather than rounds. The result is float8,
BTW.

Herouth

--
Herouth Maoz, Internet developer.
Open University of Israel - Telem project
http://telem.openu.ac.il/~herutma

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Martin Jackson 1999-08-01 22:19:43 Some questions about inheritance
Previous Message Tom Lane 1999-08-01 14:55:30 Re: [SQL] MVCC and concurrent clients