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
>