public inbox for pgsql-docs@postgresql.org  
help / color / mirror / Atom feed
From: Bruce Momjian <bruce@momjian.us>
To: Dave Cramer <davecramer@postgres.rocks>
Cc: Robert Treat <rob@xzilla.net>
Cc: Kirk Parker <khp@equatoria.us>
Cc: Richard Neill <rjn@richardneill.org>
Cc: github@richardneill.org
Cc: pgsql-docs@lists.postgresql.org
Subject: Re: Please clarify that Timestamp with Timezone doesn't preserve the timezone.
Date: Thu, 14 May 2026 12:39:48 -0400
Message-ID: <agX61I5SYlFJ8pFE@momjian.us> (raw)
In-Reply-To: <CADK3HHJ19ewaV3=491dnEsmSS4_KXn1hXGPfwAumQu1YMy++1A@mail.gmail.com>
References: <177685804902.403059.7237129094698721575@wrigleys.postgresql.org>
	<agPDkRGXmdyD1EcR@momjian.us>
	<ddf41f033a8add84e1f28a095defafae@richardneill.org>
	<agR45nws-Y1StCCH@momjian.us>
	<CANwZ8rmZdajKmt1KmTRhO7ex-RUeQNwu7yQw19mWaR08B+BdHA@mail.gmail.com>
	<agS4qwKSeb-8CrJc@momjian.us>
	<CABV9wwPSTVtyBpe8J2kJ1JA29ZKTVtB3+Wjo2gFLJYWZCbqo-Q@mail.gmail.com>
	<agW6gzVtz73ZUjNn@momjian.us>
	<CADK3HHJ19ewaV3=491dnEsmSS4_KXn1hXGPfwAumQu1YMy++1A@mail.gmail.com>

On Thu, May 14, 2026 at 08:17:36AM -0400, Dave Cramer wrote:
> 
> 
> On Thu, 14 May 2026 at 08:05, Bruce Momjian <bruce@momjian.us> wrote:
> 
>     On Thu, May 14, 2026 at 07:57:21AM -0400, Robert Treat wrote:
>     > > I see your point.  I went with adding the wording "no time zone
>     > > adjustment" and "with time zone adjustment" in the table.  Patch
>     > > attached.  You can see the output at:
>     >
>     > The quibble I have with the term "time zone adjustment" is that it
>     > implies there will be some adjustment, but while you can change your
>     > timezone preferences to display a timestamptz value in whatever time
>     > zone you want, the value itself is never adjusted; it is stored as a
>     > universal moment in time that doesn't change, regardless of the window
>     > dressing around it. For this reason I have taken to describing that
>     > difference between the two as that timestamptz stores the date and
>     > time with timezone awareness, and timestamp is date and time with no
>     > timezone awareness. Perhaps that might work better here as well?
> 
>     I used "adjustment" because the value is adjusted on input, and adjusted
>     on output.  I would say the value is not "aware" of the time zone
>     because once it is internally stored as UTC it is no longer aware of the
>     original time zone.
> 
> 
> Adjusted seems like the wrong word. I think the correct word is converted.

Okay, here is the patch with "conversion".

-- 
  Bruce Momjian  <bruce@momjian.us>        https://momjian.us
  EDB                                      https://enterprisedb.com

  Do not let urgent matters crowd out time for investment in the future.


Attachments:

  [text/x-diff] time_zone.diff (3.3K, 2-time_zone.diff)
  download | inline diff:
diff --git a/doc/src/sgml/datatype.sgml b/doc/src/sgml/datatype.sgml
index d8d91678e86..9a3b8cfbc1d 100644
--- a/doc/src/sgml/datatype.sgml
+++ b/doc/src/sgml/datatype.sgml
@@ -252,25 +252,25 @@
       <row>
        <entry><type>time [ (<replaceable>p</replaceable>) ] [ without time zone ]</type></entry>
        <entry></entry>
-       <entry>time of day (no time zone)</entry>
+       <entry>time of day (no time zone conversion)</entry>
       </row>
 
       <row>
        <entry><type>time [ (<replaceable>p</replaceable>) ] with time zone</type></entry>
        <entry><type>timetz</type></entry>
-       <entry>time of day, including time zone</entry>
+       <entry>time of day, including time zone conversion</entry>
       </row>
 
       <row>
        <entry><type>timestamp [ (<replaceable>p</replaceable>) ] [ without time zone ]</type></entry>
        <entry></entry>
-       <entry>date and time (no time zone)</entry>
+       <entry>date and time (no time zone conversion)</entry>
       </row>
 
       <row>
        <entry><type>timestamp [ (<replaceable>p</replaceable>) ] with time zone</type></entry>
        <entry><type>timestamptz</type></entry>
-       <entry>date and time, including time zone</entry>
+       <entry>date and time, including time zone conversion</entry>
       </row>
 
       <row>
@@ -1768,7 +1768,7 @@ SELECT 'abc \153\154\155 \052\251\124'::bytea;
        <row>
         <entry><type>timestamp [ (<replaceable>p</replaceable>) ] [ without time zone ]</type></entry>
         <entry>8 bytes</entry>
-        <entry>both date and time (no time zone)</entry>
+        <entry>both date and time (no time zone conversion)</entry>
         <entry>4713 BC</entry>
         <entry>294276 AD</entry>
         <entry>1 microsecond</entry>
@@ -1776,7 +1776,7 @@ SELECT 'abc \153\154\155 \052\251\124'::bytea;
        <row>
         <entry><type>timestamp [ (<replaceable>p</replaceable>) ] with time zone</type></entry>
         <entry>8 bytes</entry>
-        <entry>both date and time, with time zone</entry>
+        <entry>both date and time, with time zone conversion</entry>
         <entry>4713 BC</entry>
         <entry>294276 AD</entry>
         <entry>1 microsecond</entry>
@@ -1800,7 +1800,7 @@ SELECT 'abc \153\154\155 \052\251\124'::bytea;
        <row>
         <entry><type>time [ (<replaceable>p</replaceable>) ] with time zone</type></entry>
         <entry>12 bytes</entry>
-        <entry>time of day (no date), with time zone</entry>
+        <entry>time of day (no date), with time zone conversion</entry>
         <!-- see MAX_TZDISP_HOUR in datatype/timestamp.h -->
         <entry>00:00:00+1559</entry>
         <entry>24:00:00-1559</entry>
@@ -2263,8 +2263,9 @@ TIMESTAMP WITH TIME ZONE '2004-10-19 10:23:54+02'
       then it is assumed to be in the time zone indicated by the system's
       <xref linkend="guc-timezone"/> parameter, and is converted to UTC using the
       offset for the <varname>timezone</varname> zone.
-      In either case, the value is stored internally as UTC, and the
-      originally stated or assumed time zone is not retained.
+      In either case, the value is stored internally as UTC.  The
+      originally stated or assumed time zone is not retained and
+      <emphasis>cannot</emphasis> be retrieved later.
      </para>
 
      <para>


reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-docs@postgresql.org
  Cc: bruce@momjian.us, davecramer@postgres.rocks, rob@xzilla.net, khp@equatoria.us, rjn@richardneill.org, github@richardneill.org, pgsql-docs@lists.postgresql.org
  Subject: Re: Please clarify that Timestamp with Timezone doesn't preserve the timezone.
  In-Reply-To: <agX61I5SYlFJ8pFE@momjian.us>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox