How do you set the default Postgresql system TimeZone parameter - postgresql

I installed Postgresql 9.5.3 on windows, and picked "default locale" during the installation.
I believe that this has made my system TimeZone parameter default to my local timezone. I know that I can manually set the time zone using set timezone: How to set timezone for Postgres psql?
However, I would like my system TimeZone parameter to be the 'UTC' time zone, without having to set it manually. I looked up my postgresql.conf and replaced the timezone = ... line with timezone = 'UTC', per this link, but this does not seem to have worked.

Related

Postgres in Docker - Can't set time zone

I thought I had changed the time zone in the past, but it doesn't seem to be working now. Logging into the Docker Container and entering the "date" command returns the correct time and date. The Docker Container is running on a RPi (Raspberry Pi).
Entering the following commands in Adminer:
SHOW TIMEZONE; Returns Etc/UTC
Enter SET TIMEZONE='Australia/Brisbane'
Returns Query executed OK, 0 rows affected.
Enter SHOW TIMEZONE; Returns Etc/UTC
I have also tried SET TIME ZONE 'Australia/Brisbane'
you can just "SHOW timezone" to show the actual timezone and them
SET TIME ZONE 'America/Montreal'; using continent / region.
or
SET TIME ZONE 'UTC';
or even
timezone configuration

How to permanently change timezone in postgresql

I'd like to know how to permanently change the timezone on postgresql -- using set timezone TO 'UTC' only changes it in current session, upon restarting it's back to my region timezone. If i change the postgresql.config file under data to:
datestyle = 'iso, dmy'
#intervalstyle = 'postgres'
timezone = 'UTC'
#timezone_abbreviations = 'Default'
Even if i stop the postgresql-x64-12 service, save the file, and restart service, it goes back to my region timezone afterwards.
Thank you!
The documentation says:
The TimeZone configuration parameter can be set in the file postgresql.conf, or in any of the other standard ways described in Chapter 19. There are also some special ways to set it:
The SQL command SET TIME ZONE sets the time zone for the session. This is an alternative spelling of SET TIMEZONE TO with a more SQL-spec-compatible syntax.
The PGTZ environment variable is used by libpq clients to send a SET TIME ZONE command to the server upon connection.
So either you changed the value in a wrong postgresql.conf, or you have the PGTZ environment variable set on the client side.
Another alternative is a SET TIME ZONE command in the .psqlrc file.

How to change AWS RDS Postgres database timezone?

I am trying to change the RDS timezone to UTC,
I'm using an SQL Client called DBeaver
I tried the following two commands -
1. Configuration Parameter Name -
SET timezone TO 'UTC';
and
2. Standard SQL Command -
SET TIME ZONE 'UTC';
But the select now(); command still doesn't return the UTC time
I am referring this answer -
postgres default timezone
Tried the following -
echo $PGTZ
SET TIME ZONE 'UTC';
ALTER DATABASE your_db_name SET timezone TO 'UTC';
Maybe you are using a connection pool, and session settings get cleared when the session returns to the pool.
You could try something like
ALTER ROLE your_user SET timezone = 'UTC';
You must reconnect for this to take effect.
Also, check if the environment variable PGTZ is set in your environment. It will override the database settings.
If all that doesn't do the trick, consider the possibility that the server's time is off.

Database timezone not using TZ

I have a timestamp column 'submitted_on' with default as now().
I have set the heroku TZ to my zone and added a php user ini with the same timezone.
But the database is still using UTC timezone. I see this when I ran this sql:
show timezone;
Is there a fix? Or this is how heroku databases work? Also I'm using free dynos.
Setting a TZ config var only affects the Dynos environment, as the database is located on a different machine, it has no effect.
Generally speaking, you should always keep servers clocks running on UTC, store all times in UTC, and perform any timezone/locale changes in your application framework.
The parameter timezone is determined when the database cluster is created.
You can either change the value in postgresql.conf, or you can use ALTER SYSTEM as a superuser to change the value.
I don't know if Heroku allows you either of these options.

Timestamp functions not returning time

I'm using Postgresql 9.6 and pgAdmin 4. Fresh install on both Windows and Mac, happens on both.
I need to store the current time and date.
None of my timestamp functions are returning times.
Time and Date work fine
SELECT CURRENT_DATE
Output: 2016-07-15
SELECT CURRENT_TIME
Output: 14:27:22.333352+01:00
SELECT CURRENT_TIMESTAMP
Output: 2016-07-15T00:00:00Z
Expected: 2016-07-15T14:27:22+01:00
SELECT now()
Output: 2016-07-15T00:00:00Z
Expected: 2016-07-15T14:27:22+01:00
What is the problem here?
set timezone TO 'GMT';
SET TIME ZONE 'UTC';
OR
You can set timezone param into pgsql/data/postgresql.conf file:
timezone = 'US/Central'
and then restart postgresql sever.
The problem is a bug in pgAdmin 4.
Timestamps are displayed incorrectly with the time set to 00:00:00Z
The data is stored correctly and the correct time can be observed using a different a different client such as psql
This issue has been resolved with newer version of pgAdmin4.