It is in the session startup messages. I'm trying to recall the technical details as to why. My recollection is that for timestamps without timezone will be reported in the client timezone.
Do you want the server timezone or postgres timezone. A simple C function should provide the latter.
On 21 November 2017 at 02:01, Thomas Kellerer <spam_eater@gmx.net> wrote:
Hello,
it seems the JDBC driver (or Java?) makes it impossible to retrieve the server's time zone.
Apparently the driver changes the timezone setting so that it can't be reset to the original from the server.
When I run "show timezone" from within JDBC I *always* get the client's time zone, even if I do a "reset timezone" before that
When I do the same with psql I can see the server's time zone.
Ultimately I would like to get the server's time, e.g. by running something like:
select current_timestamp at time zone server_timezone
I already posted this to the general mailing list, because I initially thought this was a Postgres problem. Tom Lane suggested, I could see the original time zone the server is set up with using:
select reset_val from pg_settings where name = 'TimeZone';
But that again returns the client's time zone through JDBC, but the real time zone through psql.
It seems the driver changes this setting permanently for the session. If that is the case, can I prevent that somehow? Thomas