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

Waktu postgres dengan kesetaraan zona waktu

Berikut adalah dua cara untuk mengevaluasi timetz kesetaraan:

SELECT a, b, a = b AS plain_equality
     , '2000-1-1'::date + a = '2000-1-1'::date + b AS ts_equality
     , a AT TIME ZONE 'UTC', b AT TIME ZONE 'UTC'  AS timetz_equality
FROM  (
   SELECT '12:00:00 -0800'::timetz AS a
        , '14:00:00 -0600'::timetz AS b
   ) sub;

Yang pertama dengan menambahkannya ke date .
Yang kedua dengan menggunakan AT TIME ZONE konstruksi.

Tapi sebaiknya jangan gunakan time with time zone sama sekali.
Postgres mendukung tipe ini hanya karena berada dalam standar SQL. Itu rusak karena desain (tidak dapat mempertimbangkan DST!) dan penggunaannya tidak disarankan.

Mengutip manualnya di sini:

Jenis time with time zone didefinisikan oleh standar SQL, tetapi definisi tersebut menunjukkan sifat yang mengarah pada kegunaan yang dipertanyakan. Dalam kebanyakan kasus, kombinasi date , time , timestamp without time zone , dan timestamp with time zone harus menyediakan rangkaian lengkap fungsionalitas tanggal/waktu yang diperlukan oleh aplikasi apa pun.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mencegah entri yang berdekatan/tumpang tindih dengan EXCLUDE di PostgreSQL

  2. Bagaimana saya bisa mengatur parameter String[] ke kueri asli?

  3. Bagaimana cara memeriksa apakah pemicu ada di PostgreSQL?

  4. PostgreSQL buat tabel jika tidak ada

  5. Masa Depan Postgres-XL