Saya memiliki beberapa instalasi PostgreSQL 9.2 di mana zona waktu yang digunakan oleh PostgreSQL adalah GMT, meskipun keseluruhan sistemnya adalah "Eropa / Wina". Aku mengecek bahwa postgresql.conf
tidak tidak mengandung timezone
pengaturan, sehingga menurut dokumentasi itu harus mundur ke zona waktu sistem.
Namun,
# su -s /bin/bash postgres -c "psql mydb"
mydb=# show timezone;
TimeZone
----------
GMT
(1 row)
mydb=# select now();
now
-------------------------------
2013-11-12 08:14:21.697622+00
(1 row)
Ada petunjuk, dari mana zona waktu GMT bisa berasal? Pengguna sistem tidak TZ
mengatur dan /etc/timezone
dan /etc/timeinfo
tampaknya dikonfigurasi dengan benar.
# cat /etc/timezone
Europe/Vienna
# date
Tue Nov 12 09:15:42 CET 2013
Ada petunjuk yang dihargai, terima kasih sebelumnya!
sumber
postgresql.conf
versi 9.2+ bahwa zona waktu lingkungan sistem masih harus terdeteksi secara otomatis?Saya menemukan solusi untuk ini.
cukup buat symlink di dalam / usr / share / zoneinfo / bernama localtime (atau nama apa pun yang Anda inginkan) untuk diarahkan ke / etc / localtime
dengan cara ini Anda membuat serangkaian tautan yang pada akhirnya menunjuk pada zona waktu sistem Anda.
Sekarang mengambil nama dari link yang Anda buat ( localtime dalam kasus saya) dan menggunakannya sebagai nilai dari item konfigurasi di postgresql.conf
restart postgresql dan periksa waktu dengan "SELECT now ();" dan "tampilkan zona waktu;"
sumber