From: | Itai Zukerman <zukerman(at)math-hat(dot)com> |
---|---|
To: | pgsql-sql(at)postgresql(dot)org |
Subject: | Re: Time Aggregates |
Date: | 2000-08-02 15:52:01 |
Message-ID: | 87em47u0da.fsf@matt.w80.math-hat.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
> > SELECT symbol, date_trunc('minute', posted),
> > min(price), max(price), avg(price)
> > FROM trade
> > GROUP BY symbol, date_trunc('minute', posted);
Hmmm... I'm not sure how to go about doing this for, say, 5 minute
intervals. Basically, I want a function:
date_round( timestamp, timespan ) --> timestamp
that will round the timestamp to the "nearest" timespan interval,
counting back from, say, the current time.
date_round( '1/1/99 15:21', '5 minutes' ) --> '1/1/99 15:20'
if the current time is, say, 12:00. As I see it, this involves
1. calculating the interval between now and the timestamp;
2. rounding that interval to the nearest multiple of the supplied interval;
3. adding the rounded interval to the current time.
It's step 2 that I can't quite figure out. I'm thinking about using
date_part( 'epoch', ... ) and some arithmetic. Will that be OK? Has
anyone done this before?
-itai
PS. I'll also be happy if the function is called 'date_trunc' :)
PPS. I expect this query to be called much less often than inserts to
the table.
From | Date | Subject | |
---|---|---|---|
Next Message | JavierG | 2000-08-02 20:20:29 | postgresql and java2 |
Previous Message | David Lloyd-Jones | 2000-08-02 15:37:44 | Re: Time Aggregates |