| 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: | Whole Thread | Raw Message | 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. |