Timestamp with and without timezone conversion confusion.

Поиск
Список
Период
Сортировка
От Tim Uckun
Тема Timestamp with and without timezone conversion confusion.
Дата
Msg-id CAGuHJrNCzUuJpDms5CvkB2ezJg-E_f=Er+jQFN2N2sXHffmhqA@mail.gmail.com
обсуждение исходный текст
Ответы Re: Timestamp with and without timezone conversion confusion.  (Albe Laurenz <laurenz.albe@wien.gv.at>)
Список pgsql-general
I have the following query.

with parsed_data as (
     SELECT
        devicereportedtime ,
       DATE_TRUNC('minute', devicereportedtime - (EXTRACT(minute FROM devicereportedtime)::integer % 5 || 'minutes')::interval) as interval_start
        FROM systemevents
       WHERE devicereportedtime >= now() - interval '10 minutes'
      ORDER BY devicereportedtime asc
  limit 10000
 ),
 grouped_data as (
 SELECT
 interval_start  at time zone 'Etc/UTC' as interval_start,
 MIN(devicereportedtime) at time zone 'Etc/UTC'   as min_datetime,
 MAX(devicereportedtime) at time zone 'Etc/UTC'   as max_datetime
 FROM parsed_data
 GROUP BY interval_start
 )
 
 SELECT
 interval_start, 
 (interval_start AT TIME ZONE 'Africa/Monrovia')::timestamp with time zone  as interval_start_in_africa,
  min_datetime,
 min_datetime AT TIME ZONE 'Europe/Berlin' as min_datetime_in_berlin,
  max_datetime, 
 max_datetime AT TIME ZONE 'America/New_York' as max_datetime_in_new_york

  FROM grouped_data gd
 
The field "devicereportedtime" is timstamp without time zone. The database is set to  'Pacific/Auckland" (my development machine)  and the devices are reporting UTC. 

The grouped_data clause forces the parsing of the timestamp without timestamp to be UTC as well as the mins and the max timestamps.   I then want to present this data in other time zones 

When I run this query in pgadmin I get the following results

"interval_start","interval_start_in_africa","min_datetime","min_datetime_in_berlin","max_datetime","max_datetime_in_new_york"
"2013-10-04 15:35:00+13","2013-10-04 02:35:00+13","2013-10-04 15:35:00+13","2013-10-04 04:35:00","2013-10-04 15:39:59+13","2013-10-03 22:39:59"
"2013-10-04 15:25:00+13","2013-10-04 02:25:00+13","2013-10-04 15:28:11+13","2013-10-04 04:28:11","2013-10-04 15:29:59+13","2013-10-03 22:29:59"
"2013-10-04 15:40:00+13","2013-10-04 02:40:00+13","2013-10-04 15:40:00+13","2013-10-04 04:40:00","2013-10-04 15:44:39+13","2013-10-03 22:44:39"
"2013-10-04 15:30:00+13","2013-10-04 02:30:00+13","2013-10-04 15:30:00+13","2013-10-04 04:30:00","2013-10-04 15:34:59+13","2013-10-03 22:34:59"

Notice that all the offsets are set to +13 which is my laptop's offset. Why don't they show the offset of Africa or Berlin or whatever?  Also note then unless I explictly cast the data as timestamp with time zone all the offsets go away and it's reported as timestamp without time zone.


So what am I doing wrong here?

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

Предыдущее
От: John R Pierce
Дата:
Сообщение: Re: Largest PG database known to man!
Следующее
От: Chris Travers
Дата:
Сообщение: Re: Largest PG database known to man!