Hier zijn twee manieren om timetz
te evalueren gelijkheid:
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;
De eerste door het toe te voegen aan een date
.
De tweede met behulp van de AT TIME ZONE
construeren.
Maar gebruik liever geen time with time zone
helemaal niet.
Postgres ondersteunt het type alleen omdat het in de SQL-standaard zit. Het is ontwerpfout (kan geen rekening houden met DST!) en het gebruik ervan wordt afgeraden.
Ik citeer hier de handleiding:
Het type
time with time zone
wordt gedefinieerd door de SQL-standaard, maar de definitie vertoont eigenschappen die tot twijfelachtige bruikbaarheid leiden. In de meeste gevallen is een combinatie vandate
,time
,timestamp without time zone
, entimestamp with time zone
moet een volledige reeks datum/tijd-functionaliteit bieden die vereist is voor elke toepassing.