PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Apa tipe data yang tepat untuk menyimpan zona waktu?

Sayangnya PostgreSQL tidak menawarkan tipe data zona waktu, jadi Anda mungkin harus menggunakan text .

interval sepertinya opsi logis pada pandangan pertama, dan itu adalah sesuai untuk beberapa kegunaan. Namun, gagal untuk mempertimbangkan waktu musim panas, juga tidak mempertimbangkan fakta bahwa wilayah yang berbeda dalam offset UTC yang sama memiliki aturan DST yang berbeda.

Tidak ada pemetaan 1:1 dari offset UTC kembali ke zona waktu.

Misalnya, zona waktu untuk Australia/Sydney (New South Wales) adalah UTC+10 (EST ), atau UTC+11 (EDT ) selama waktu musim panas. Ya, itu singkatan yang sama EST yang digunakan AS; akronim zona waktu tidak unik dalam basis data tzdata, itulah sebabnya Pg memiliki timezone_abbreviations pengaturan. Lebih buruk lagi, Brisbane (Queensland) berada pada garis bujur yang hampir sama dan berada di UTC+10 EST ... tetapi tidak memiliki penghematan waktu siang hari, jadi terkadang di -1 offset ke New South Wales selama DST NSW.

(Perbarui :Baru-baru ini Australia mengadopsi A awalan, jadi menggunakan AEST sebagai akronim TZ negara bagian timur, tetapi EST dan WST tetap digunakan secara umum).

Sangat membingungkan?

Jika Anda hanya perlu menyimpan offset UTC lalu interval sesuai. Jika Anda ingin menyimpan zona waktu , simpan sebagai text . Sulit untuk memvalidasi dan mengonversi ke offset zona waktu saat ini, tetapi setidaknya itu mengatasi DST.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Penyelaman Mendalam Vendor Cloud:PostgreSQL di AWS Aurora

  2. Agregat PostgreSQL khusus untuk rata-rata melingkar

  3. Panduan Menggunakan pgBouncer untuk PostgreSQL

  4. Bagaimana terhubung dengan Host PostgreSQL dari mesin virtualbox gelandangan

  5. Menggunakan row_to_json() dengan gabungan bersarang