Postgresql Timezone Sorunu

PostgreSQL'de CURRENT_TIMESTAMP fonksiyonunun saati yanlış görünüyorsa, büyük ihtimalle veritabanının veya oturumun zaman dilimi (timezone) ayarları doğru yapılandırılmamış olabilir.

Veritabanında aktif olan zaman dilimini kontrol etmek için şu sorguyu çalıştırabilirsiniz:

SHOW timezone;

 

Eğer yanlış bir zaman dilimi ayarlıysa, bunu düzeltmek için oturum bazında veya veritabanı genelinde ayar yapabilirsiniz:

a) Oturum Bazında Zaman Dilimi Değiştirme

Oturum için geçerli zaman dilimini değiştirmek için aşağıdaki komutu kullanabilirsiniz:

SET timezone = 'Europe/Istanbul';

   Bu işlem sadece mevcut bağlantı süresince geçerli olur.

b) Varsayılan Zaman Dilimini Değiştirme

Veritabanı genelinde varsayılan zaman dilimini değiştirmek istiyorsanız, PostgreSQL'in yapılandırma dosyasında (postgresql.conf) şu satırı düzenleyin:

Postgresql Timezone SorunuPostgresql Timezone SorunuDeğişiklik yaptıktan sonra PostgreSQL hizmetini yeniden başlatmanız gerekir:

sudo systemctl restart postgresql
   
c) Zaman Dilimini Kullanıcı Bazında Ayarlama

Belirli bir kullanıcı için zaman dilimini ayarlamak istiyorsanız, aşağıdaki komutla kullanıcı ayarını değiştirebilirsiniz:

ALTER ROLE your_user SET timezone = 'Europe/Istanbul';

 

Doğru zaman dilimi ayarı ile CURRENT_TIMESTAMP şu şekilde doğru sonuç verecektir:

SELECT CURRENT_TIMESTAMP;

 

Kaynak

Yorumunuzu Ekleyin


Yükleniyor...
Yükleniyor...