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@xxxxxxxx
---------------------------(end of broadcast)---------------------------
TIP 8: explain analyze is your friend
---------------------------(end of broadcast)--------------------------- TIP 7: don't forget to increase your free space map settings