Re: Issue when displaying TIMESTAMPTZ values

From: Kasper Rönning <kasper(dot)ronning(at)reliabit(dot)fi>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-bugs(at)postgresql(dot)org
Subject: Re: Issue when displaying TIMESTAMPTZ values
Date: 2012-06-07 18:56:42
Message-ID: 4FD0F96A.80301@reliabit.fi
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Hi,

Thank you for the quick reply! I was completely unaware of the old time
zones of Helsinki! However I'm afraid that the behaviour of Postgresql
seems plain wrong to me. An example:

SET TIME ZONE 'Europe/Helsinki';
DROP TABLE IF EXISTS test1;
CREATE TABLE test1 (ts TIMESTAMPTZ);
INSERT INTO test1 VALUES ('0001-01-01 00:00:00');
SELECT * FROM test1;
-- ts
-- ------------------------------
-- 0001-01-01 00:00:00+01:39:52

Here I enter a timestamp in Helsinki time zone, and the query result is
different, even though the time zone is the same.

I will resolve this matter by using TIMESTAMP WITHOUT TIME ZONE instead,
and storing the offset manually. That way I get two advantages: 1)
queried time stamp will be equal to the inserted one 2) time offset
information is stored, allowing the time to be displayed in the same
time zone as it was entered and at the point in time that it was entered.

Best regards,
Kasper Rönning

On 7.6.2012 17:37, Tom Lane wrote:
> =?ISO-8859-1?Q?Kasper_R=F6nning?=<kasper(dot)ronning(at)reliabit(dot)fi> writes:
>> I seem to have found a bug in Postgres 9.1.3. Apparently timestamp
>> values are stored correctly in the database, but querying it returns
>> invalid results. My environment is Windows 7 64bit. The unexpected
>> result is that timestamps before 1st of May 1921 are displayed
>> incorrectly when time zone is 'Europe/Helsinki'.
> This is not incorrect. The Olson timezone database shows:
>
> # Zone NAME GMTOFF RULES FORMAT [UNTIL]
> Zone Europe/Helsinki 1:39:52 - LMT 1878 May 31
> 1:39:52 - HMT 1921 May # Helsinki Mean Time
> 2:00 Finland EE%sT 1983
> 2:00 EU EE%sT
>
> that is, it was only in 1921 that Helsinki adopted "standard" time
> referenced to the Greenwich meridian. Before that it would have been
> typical to set clocks by local mean solar time, which is 1:39:52 east
> of Greenwich.
>
> regards, tom lane

--
Kasper Rönning
Reliabit Ay

www.reliabit.fi
kasper(dot)ronning(at)reliabit(dot)fi
Tel: +358-445 010 634

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Tom Lane 2012-06-07 19:05:05 Re: Issue when displaying TIMESTAMPTZ values
Previous Message Andres Freund 2012-06-07 16:49:42 Re: BUG #6661: out-of-order XID insertion in KnownAssignedXids