Re: Binary encoding of TIMESTAMP WITH TIME ZONE - Mailing list pgsql-general

From Peter J. Holzer
Subject Re: Binary encoding of TIMESTAMP WITH TIME ZONE
Date
Msg-id 20200605153057.GA11484@hjp.at
Whole thread Raw
In response to Re: Binary encoding of TIMESTAMP WITH TIME ZONE  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-general
On 2020-06-04 20:32:51 -0400, Tom Lane wrote:
> Joe Abbate <jma@freedomcircle.com> writes:
> > However, when using the same query using the Rust adapter the transition
> > to a new row started showing up after midgnight GMT.  I opened an issue
> > on Github (https://github.com/sfackler/rust-postgres/issues/608 ) and
> > the maintainer claimed the Rust adapter *had* to initialize timezone to
> > UTC in order to properly convert "to and from time datatypes".  I
> > pointed out that the timezone offset is available in psql and psycopg2,
> > but then he replied the binary encoding of timestamptz does *not*
> > include the timezone offset.
>
> Indeed it does not, just as the on-disk format for it does not.  The
> representation is effectively always in UTC.  If you have some other
> timezone setting selected, timestamptz_out rotates to that zone for
> display purposes ... but the binary format doesn't.

However, the explanation still sounds off. I'm not familiar with Rust,
but I wouild expect the Rust time type to be based on Unix time_t or
some variant of it (maybe milliseconds as in Java, or nanoseconds or a
different epoch). That also doesn't include a timezone, so conversion
should be straightforward and not require any timezone to be involved.

        hp

--
   _  | Peter J. Holzer    | Story must make more sense than reality.
|_|_) |                    |
| |   | hjp@hjp.at         |    -- Charles Stross, "Creative writing
__/   | http://www.hjp.at/ |       challenge!"

Attachment

pgsql-general by date:

Previous
From: Achilleas Mantzios
Date:
Subject: Re: Oracle vs. PostgreSQL - a comment
Next
From: Koen De Groote
Date:
Subject: Re: Index no longer being used, destroying and recreating it restores use.