Re: truncating timestamps on arbitrary intervals

Поиск
Список
Период
Сортировка
От John Naylor
Тема Re: truncating timestamps on arbitrary intervals
Дата
Msg-id CACPNZCvzZ888rS5GkoqwthXEfM5u1zP0oXpXgNXGCH_HE5vijA@mail.gmail.com
обсуждение исходный текст
Ответ на Re: truncating timestamps on arbitrary intervals  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: truncating timestamps on arbitrary intervals  (Isaac Morland <isaac.morland@gmail.com>)
Re: truncating timestamps on arbitrary intervals  (Artur Zakirov <zaartur@gmail.com>)
Список pgsql-hackers
On Wed, Feb 26, 2020 at 11:36 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:
>
> * In general, binning involves both an origin and a stride.  When
> working with plain numbers it's almost always OK to set the origin
> to zero, but it's less clear to me whether that's all right for
> timestamps.  Do we need another optional argument?  Even if we
> don't, "zero" for tm_year is 1900, which is going to give results
> that surprise somebody.

I tried the simplest way in the attached v5. Examples (third param is origin):

-- same result as no origin:
select date_trunc_interval('5 min'::interval, TIMESTAMP '2020-02-01
01:01:01', TIMESTAMP '2020-02-01');
 date_trunc_interval
---------------------
 2020-02-01 01:00:00
(1 row)

-- shift bins by 2.5 min:
select date_trunc_interval('5 min'::interval, TIMESTAMP '2020-02-1
01:01:01', TIMESTAMP '2020-02-01 00:02:30');
 date_trunc_interval
---------------------
 2020-02-01 00:57:30
(1 row)

-- align weeks to start on Sunday
select date_trunc_interval('7 days'::interval, TIMESTAMP '2020-02-11
01:01:01.0', TIMESTAMP '1900-01-02');
 date_trunc_interval
---------------------
 2020-02-09 00:00:00
(1 row)

I've put off adding documentation on the origin piece pending comments
about the approach.

I haven't thought seriously about timezone yet, but hopefully it's
just work and nothing to think too hard about.


--
John Naylor                https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

Вложения

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Andres Freund
Дата:
Сообщение: Re: [PATCH] Skip llvm bytecode generation if LLVM is missing
Следующее
От: Kyotaro Horiguchi
Дата:
Сообщение: Re: Reducing WaitEventSet syscall churn