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, kombinasidate
,time
,timestamp without time zone
, dantimestamp with time zone
harus menyediakan rangkaian lengkap fungsionalitas tanggal/waktu yang diperlukan oleh aplikasi apa pun.