Voici deux façons d'évaluer timetz
égalité :
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;
Le premier en l'ajoutant à une date
.
La seconde en utilisant le AT TIME ZONE
construire.
Mais plutôt n'utilisez pas time with time zone
du tout.
Postgres prend en charge le type uniquement parce qu'il est dans le standard SQL. Il est cassé par conception (ne peut pas considérer l'heure d'été !) et son utilisation est déconseillée.
Citant le manuel ici :
Le type
time with time zone
est défini par le standard SQL, mais la définition présente des propriétés qui conduisent à une utilité discutable. Dans la plupart des cas, une combinaison dedate
,time
,timestamp without time zone
, ettimestamp with time zone
devrait fournir une gamme complète de fonctionnalités de date/heure requises par toute application.