Я предполагаю, что ваше время хранится как значения DATE, что все значения хранятся как время UTC, и что интересующий вас часовой пояс является постоянным.Чтобы преобразовать UTC в заданный часовой пояс, вы добавляете смещение часового пояса.В этом случае, поскольку интересующий часовой пояс имеет отрицательное смещение, необходимо добавить то же отрицательное число.Таким образом, может быть полезным следующее:
SELECT DATE_FIELD + INTERVAL '-5' HOUR
FROM SOME_TABLE
WHERE <whatever>
FWIW, есть некоторые места, где преобразование в местное время использует смещение не на целый час - например, Аделаида, Австралия использует смещение +9,5 часаиз GMT и Катманду Непал использует +5,75 часа.
Делитесь и наслаждайтесь.
РЕДАКТИРОВАТЬ: Учитывая данные, как вы их описали, лучше всего просто добавить вчасовой пояс сеанса, как показано ниже:
SELECT your_gmt_timestamp_field AT TIME ZONE SESSIONTIMEZONE
FROM your_table
Попробуйте и посмотрите, поможет ли это.