Argh! I've found some comments on this thread confusing, and I've
discovered the source of this confusion -- I was thinking that a column
defined as type "timestamp with time zone" would store a time zone with
the timestamp. (Really, I did read the documentation on data types, but
the discussion of how this data type is implemented slid right out of my
head.) I will have to review everything with the actual implementation
in mind; I now see why this is more complicated than I thought.
Could someone confirm that a timestamp column in a PostgreSQL database
never contains time zone data, regardless of whether or not the "with
time zone" clause was used in its definition. It seems to me that, if
you ignore internals of how the data is stored (which an application
programmer never need see), the only difference between "timestamp with
time zone" and "timestamp without time zone" is whether a time zone
specified in a literal will (a) be used to determine what moment the
timestamp represents or (b) be ignored in favor of using the server's
time zone to determine what moment the timestamp represents. In either
case, the value returned when querying the column will be based on the
server's time zone. Do I have that right?
-Kevin