Terry Lee Tucker <terry@esc1.com> writes:
> I thought that subtracting the larger interval from
> the small would return this but it is always the absolute value.
Eh?
regression=# set DateStyle TO ISO;
SET
regression=# select '@ 3 days 4 hours 17 mins'::interval -
regression-# '@ 3 days 6 hours 17 mins'::interval;
?column?
-----------
-02:00:00
(1 row)
regression=# set DateStyle TO postgres;
SET
regression=# select '@ 3 days 4 hours 17 mins'::interval -
regression-# '@ 3 days 6 hours 17 mins'::interval;
?column?
---------------
@ 2 hours ago
(1 row)
and as for detecting whether it's negative,
regression=# select ('@ 3 days 4 hours 17 mins'::interval -
regression(# '@ 3 days 6 hours 17 mins'::interval) < '0'::interval;
?column?
----------
t
(1 row)
regards, tom lane