Re: Interval Question - Mailing list pgsql-general

From Timothy Perrigo
Subject Re: Interval Question
Date
Msg-id F99D0261-63E2-11D9-95C7-000A95C4F0A2@wernervas.com
Whole thread Raw
In response to Interval Question  (Terry Lee Tucker <terry@esc1.com>)
Responses Re: Interval Question  (Terry Lee Tucker <terry@esc1.com>)
List pgsql-general
Can you post the code for the function you are having trouble with?
The following psql query works as expected (returns a negative
interval):

select '3 days 4 hours 17 mins'::interval - '3 days 6 hours 17
mins'::interval;
  ?column?
-----------
  -02:00:00

Inserting the difference into a table with an interval column also
seems to work:

azrael=# create temp table interval_test(dif interval);
CREATE TABLE
azrael=# insert into interval_test select '3 days 4 hours 17
mins'::interval - '3 days 6 hours 17 mins'::interval;
INSERT 13615943 1
azrael=# select * from interval_test;
     dif
-----------
  -02:00:00
(1 row)



On Jan 11, 2005, at 8:34 AM, Terry Lee Tucker wrote:

> Greetings:
>
> I am working on a function which returns an interval value. The work
> of the
> function is to calculate the difference between the appointment
> timestamp and
> and the current timestamp, represented as an interval, and the the time
> required to travel from point A to B, represented as an interval.
>
> Appoint time:    01/14/2004 15:30
> Current time:  01/11/2004 10:43
> Appt Interval:  @ 3 days 4 hours 17 mins
>
> Travel Time:   78 hours 17 minutes
> Travel Interval:  @ 3 days 6 hours 17 mins
>
> As you can see, this truck is going to be 2 hours late. The return
> value I'm
> looking for is the difference between Appt. Interval and Travel
> Interval, as
> in: return (appt_interval - travel_interval).  This value will be
> stored in a
> column of type interval. I would like for late values to be shown as
> negative. @ -2 hours.  I thought that subtracting the larger interval
> from
> the small would return this but it is always the absolute value. The
> documentation states:
>
> interval values can be written with the following syntax:
>
> [@] quantity unit [quantity unit...] [direction]
>
>  Where: quantity is a number (possibly signed);
>
> Considering the above statement I believed that I could show this
> difference
> as a negative value but I haven't been able to figure out how to do
> it. Can I
> do this, and if so, how?
>
> Thanks...
>
>  Work: 1-336-372-6812
>  Cell: 1-336-363-4719
> email: terry@esc1.com
>
> ---------------------------(end of
> broadcast)---------------------------
> TIP 8: explain analyze is your friend
>


pgsql-general by date:

Previous
From: Terry Lee Tucker
Date:
Subject: Interval Question
Next
From: Stephan Szabo
Date:
Subject: Re: Interval Question