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

Postgres mencegah stempel waktu dengan konversi zona waktu

Solusi yang Anda usulkan sudah benar. Atau lebih tepatnya, ini adalah salah satu dari beberapa implementasi yang benar. Salah satu dari yang berikut ini akan berfungsi:

  • Simpan stempel waktu UTC di satu bidang, simpan offset di bidang lain.
  • Simpan stempel waktu lokal di satu bidang, simpan offset di bidang lain.
  • Simpan date setempat dalam satu bidang, dan simpan time with time zone di lain. (meskipun time with time zone umumnya tidak disarankan...)
  • Simpan stempel waktu UTC di satu bidang dan stempel waktu lokal di bidang lain.

Yang paling mudah sejauh ini adalah yang pertama, yang sudah Anda usulkan.

Saya akan menghindari menyimpan cap waktu di text bidang, karena cenderung tidak dapat ditelusuri dengan sangat efisien.

Perhatikan juga - jika Anda berasal dari latar belakang SQL Server, Anda mungkin mengingat datetimeoffset type, yang menyimpan waktu dan offset lokal di bidang, dan menggunakan setara UTC selama pengindeksan. Sudah umum untuk berpikir bahwa timestamp with time zone akan memiliki perilaku yang sama, tetapi mereka tidak. Mereka cukup menggunakan sesi zona waktu untuk mengkonversi ke/dari UTC. SQL Server tidak memiliki konsep zona waktu sesi, dan dengan demikian perbedaannya.

Pastikan untuk membaca bagian ini dari dokumen Postgres .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSql , ekstrak objek skema DDL untuk memisahkan file SQL

  2. Membuat kueri untuk membuat set kueri Django yang menantang

  3. Berapa jumlah maksimum kolom dalam kueri pemilihan PostgreSQL?

  4. psycopg2 dan skrip python tak terbatas

  5. Lihat kesalahan di PostgreSQL