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 zonedidefinisikan oleh standar SQL, tetapi definisi tersebut menunjukkan sifat yang mengarah pada kegunaan yang dipertanyakan. Dalam kebanyakan kasus, kombinasidate,time,timestamp without time zone, dantimestamp with time zoneharus menyediakan rangkaian lengkap fungsionalitas tanggal/waktu yang diperlukan oleh aplikasi apa pun.