From: | cen <cen(dot)is(dot)imba(at)gmail(dot)com> |
---|---|
To: | Michael Lewis <mlewis(at)entrata(dot)com> |
Cc: | pgsql-general <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: Timestamp with vs without time zone. |
Date: | 2021-09-22 06:43:58 |
Message-ID: | 39bdc659-cf20-a078-00cf-14a1bc5a842e@gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On 21. 09. 21 23:34, Michael Lewis wrote:
> Related to this current discussion and exchange of ideas... is there a
> best practice for retrieving data in such a way as the rows are
> localized to a timezone for where/group by purposes. That is, if I
> have a table which has events, but those events belong to a tenant or
> some entity that has a location which implies a timezone (or at least
> an offset), is there a best way to write a query similar to the below?
> Please forgive and overlook if there is some obvious syntax error, as
> this is just a quick and dirty example. Might it make sense to store a
> "localized" version of the timestamp *without* timezone on the event
> record such that an index can be used for fast retrieval and even
> grouping?
>
> select
> date_trunc( 'month', e.event_datetime AT TIMEZONE t.time_zone_name )
> AS event_date,
> count( e.id <http://e.id> )
> from events AS e
> join tenants AS t ON t.id <http://t.id> = e.tenant_id
> where e.event_datetime AT TIMEZONE t.time_zone_name >=
> '01/01/2021'::DATE AND e.event_datetime AT TIMEZONE t.time_zone_name <
> '09/01/2021'::DATE;
This is an interesting case. A simplified query example would be to
"give me all events for this year".
I am not sure what the cost of shifting UTC is, probably not much, but
depending on use case it might make sense to deconstruct into date and
time for query optimization.
From | Date | Subject | |
---|---|---|---|
Next Message | Tim Uckun | 2021-09-22 08:11:50 | Re: Timestamp with vs without time zone. |
Previous Message | Tim Cross | 2021-09-22 01:25:27 | Re: Timestamp with vs without time zone. |