Ecco due modi per valutare timetz
uguaglianza:
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;
Il primo aggiungendolo a una date
.
Il secondo utilizzando il AT TIME ZONE
costruire.
Ma piuttosto non usare time with time zone
affatto.
Postgres supporta il tipo solo perché è nello standard SQL. È rotto dal design (non posso considerare l'ora legale!) e il suo utilizzo è sconsigliato.
Citando il manuale qui:
Il tipo time with time zone
è definito dallo standard SQL, ma la definizione mostra proprietà che portano a un'utilità discutibile. Nella maggior parte dei casi, una combinazione di date
, time
, timestamp without time zone
e timestamp with time zone
dovrebbe fornire una gamma completa di funzionalità data/ora richieste da qualsiasi applicazione.