Това е описано в ръководството , но не винаги е очевидно как всъщност да работите с дати/часове. SQL спецификацията е малко странна.
В случая на вашия въпрос не е ясно дали искате да съхранявате часа в UTC, но да го показвате в местното време на сървъра (TimeZone ), или дали искате да игнорирате TimeZone и винаги го показвайте като UTC. Ще приема последното.
За времеви клеймца просто бихте използвали AT TIME ZONE два пъти, като:
SELECT TIMESTAMP '2013-08-13 00:00:00' AT TIME ZONE 'Australia/Sydney' AT TIME ZONE 'UTC';
Трябва да използвате AT TIME ZONE два пъти. Веднъж за преобразуване на въведеното timestamp към timestamptz според аргумента часова зона, след това друг, за да го преобразувате в timestamp в UTC.
За съжаление поради (безумния IMO) начин, по който SQL спецификацията дефинира AT TIME ZONE за TIME , не можете да направите същото за TIME . Ще трябва да манипулирате TimeZone вместо променлива:
SET TimeZone = 'UTC';
SELECT TIME '07:00' AT TIME ZONE 'Australia/Sydney';
Това все още ви оставя с timetz не е time . Така че показваната му стойност се променя с timezone настройка.