Re: Subtracting Two Intervals - Mailing list pgsql-general

From Bruce Momjian
Subject Re: Subtracting Two Intervals
Date
Msg-id 200804071831.m37IVDe15407@momjian.us
Whole thread Raw
In response to Subtracting Two Intervals  (Terry Lee Tucker <terry@chosen-ones.org>)
List pgsql-general
Terry Lee Tucker wrote:
> In porting from 7.4.19 to 8.3.1 I have found the following:
>
> 7.4.19:
> mwr=# select interval '1 day 15 hours 30 minutes' - interval '29 hours';
>       ?column?
> --------------------
>  @ 10 hours 30 mins
> (1 row)
>
> 8.3.1:
> mwr83=# select interval '1 day 15 hours 30 minutes' - interval '29 hours';
>           ?column?
> ----------------------------
>  @ 1 day -13 hours -30 mins
> (1 row)
>
> Is that right? I mean if you take 1 day (24 hours) and add -13 hours and -30
> minutes, you get 10 hours and 30 minutes, but is it supposed to display that
> way?

We removed assumptions that every day is 24 hours between those
releases. You can use justify_hours() to get the proper result:

    test=> select justify_hours(interval '1 day 15 hours 30 minutes' -
    interval '29 hours');
     justify_hours
    ---------------
     10:30:00
    (1 row)

There have been good arguments that justify_hours() behavior should be
the default.

--
  Bruce Momjian  <bruce@momjian.us>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

  + If your life is a hard drive, Christ can be your backup. +

pgsql-general by date:

Previous
From: "David Wilson"
Date:
Subject: Re: select distinct and index usage
Next
From: "Miguel A. Lopera Tejero"
Date:
Subject: BD removed