Re: Absolute value of intervals - Mailing list pgsql-general

From Lew
Subject Re: Absolute value of intervals
Date
Msg-id hcil3o$o2q$1@news.albasani.net
Whole thread Raw
In response to Re: Absolute value of intervals  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-general
Tom Lane wrote:
> Sam Mason <sam@samason.me.uk> writes:
>> On Tue, Oct 27, 2009 at 11:27:17AM -0300, Joshua Berry wrote:
>>> I couldn't find the operator '@' for intervals
>
>> A simple SQL implementation would look like:
>
>>   CREATE FUNCTION absinterval(interval) RETURNS interval
>>     IMMUTABLE LANGUAGE sql AS 'SELECT greatest($1,-$1)';
>>   CREATE OPERATOR @ ( PROCEDURE = absinterval, RIGHTARG = interval );
>
>> or is a C version really needed?
>
> I think this came up again recently and somebody pointed out that the
> correct definition isn't as obvious as all that.  The components of
> an interval can have different signs, so should abs('-1 day 1 hour') be
> '1 day -1 hour' or '1 day 1 hour'?  Or what about corner cases like
> '1 day -25 hours'?

I'm writing this at about 8:35 p.m. New York time on October 31, 2009.  From
now, adding interval '1 day -25 hours' yields right now, New York time.

--
Lew

pgsql-general by date:

Previous
From: Thomas Kellerer
Date:
Subject: Re: sudoku in an sql statement
Next
From: Lew
Date:
Subject: Re: Absolute value of intervals