Это не безопасно. Рассмотрим этот пример:
SELECT TIMESTAMPTZ '2018-02-18 02:00:00+00' AT TIME ZONE 'America/Sao_Paulo'
- TIMESTAMPTZ '2018-02-18 01:00:00+00' AT TIME ZONE 'America/Sao_Paulo';
?column?
----------
00:00:00
(1 row)
Это потому, что эти разные абсолютные временные метки выглядят одинаково в этом часовом поясе. Арифметика даты с timestamp without time zone
просто не верна, потому что разница зависит от часового пояса.
Чтобы найти истекшее время между двумя timestamp with time zone
значениями, просто вычтите их:
SELECT TIMESTAMPTZ '2018-02-18 02:00:00+00'
- TIMESTAMPTZ '2018-02-18 01:00:00+00';
?column?
----------
01:00:00
(1 row)
Этот результат всегда верен, потому что используется абсолютное время.