## Re: time interval math

From: "Edward W(dot) Rouse" Re: time interval math 2012-02-09 14:31:34 034901cce737\$86614180\$9323c480\$@com (view raw, whole thread or download thread mbox) 2012-02-08 20:01:36 from "Edward W(dot) Rouse"  2012-02-08 20:25:31 from Steve Crawford   2012-02-08 20:49:32 from "Edward W(dot) Rouse"    2012-02-09 01:51:10 from Tim Landscheidt  2012-02-09 11:36:57 from Jasen Betts   2012-02-09 14:31:34 from "Edward W(dot) Rouse"    2012-02-11 03:18:43 from Jasen Betts pgsql-sql
```
> -----Original Message-----
> From: pgsql-sql-owner(at)postgresql(dot)org [mailto:pgsql-sql-
> owner(at)postgresql(dot)org] On Behalf Of Jasen Betts
> Sent: Thursday, February 09, 2012 6:37 AM
> To: pgsql-sql(at)postgresql(dot)org
> Subject: Re: [SQL] time interval math
>
> On 2012-02-08, Edward W. Rouse <erouse(at)comsquared(dot)com> wrote:
> > I'm still working on getting this to work, but the summary is this:
> >
> > I am getting several (many) intervals of hour, minutes and seconds. I
> need a
> > sum of the absolute value these intervals, similar to the SUM(ABS())
> > function for numbers; and I need to divide this sum by an integer
> (bigint).
> > Getting the intervals is no problem, but I can't find built in
> functions for
> > the rest. Currently on 8.3, want to upgrade to 9.x but I can't until
> this is
> > finished.
>
> the operation abs() is meaninless on the type interval
> eg: what is abs( '1 month - 32 days + 24 hours'::interval )

If you need to add 30 intervals together, then +- is not meaningless.

>
> howevwer since all your intervals are in seconds (postgres pretends
> that all
> hours are 3600 seconds long) converting to seconds is probably the
> best way to go.
>
> > Do these functions exist, or will I be forced to convert to seconds,
> do the
> > math and then convert back to hour-minute-second format (I am
> assuming from
> > current data that, after the divide, the result should be in the
> minute:
> > second range).
>
> Yeah, you need to do that, it's not hard,
>
> select ( sum(abs(extract('epoch' from YOUR_INTERVAL ))) / SOMETHING ) *
> '1s'::interval
> from ...
>
> --
> ⚂⚃ 100% natural
>
>
> --
> Sent via pgsql-sql mailing list (pgsql-sql(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-sql

```

### pgsql-sql by date

 Next: From: rverghese Date: 2012-02-09 17:48:53 Subject: Re: Concurrent Reindex on Primary Key for large table Previous: From: Jasen Betts Date: 2012-02-09 11:36:57 Subject: Re: time interval math