Anda selalu dapatkan same data in browser client as the db original value
. Ada banyak cara berbeda untuk menampilkan titik waktu yang sama (pada zona waktu yang berbeda). Dua contoh (representasi teks dari timestamptz
nilai):
'2012-03-05 20:00:00+03'
'2012-03-05 18:00:00+01'
nilai yang sama .
Sejauh menyangkut Postgres, pengaturan zona waktu server sama sekali tidak relevan untuk ini. Satu-satunya hal yang relevan adalah pengaturan sesi. Dan satu-satunya yang berubah adalah tampilan dari nilai. Waktunya selalu sama.
Jadi cukup atur zona waktu di sesi Anda untuk mendapatkan representasi teks yang sesuai:
- Setel zona waktu instance PostgreSQL
- Buang dan pulihkan PostgreSQL di zona waktu yang berbeda
- Setel zona waktu kolom stempel waktu di PostgreSQL
Opsi lainnya adalah AT TIME ZONE
membangun. Untuk mendapatkan timestamp
sebagai lokal timestamp without time zone
:
SELECT my_timestamptz_column AT TIME ZONE '-8';
Saat berhadapan dengan table that contains a column of timezone type
, ini mungkin pendekatan yang lebih baik, karena zona waktu dapat berubah untuk setiap baris.
Sekali lagi, semua ini ada dalam jawaban referensi: