PostgreSQL имеет два типа datetime :
timestamp without time zone
(по умолчанию неявное timestamp
) timestamp with time zone
Полагаю, у вас есть таблица с датой и временем UTC (без типа часового пояса):
CREATE TEMP TABLE datetimetest
(
datetime timestamp
);
\d datetimetest
Table "pg_temp_1.datetimetest"
Column | Type | Modifiers
----------+-----------------------------+-----------
datetime | timestamp without time zone |
INSERT INTO datetimetest SELECT CURRENT_TIMESTAMP AT TIME ZONE 'UTC';
SELECT datetime FROM datetimetest;
datetime
----------------------------
2011-08-15 15:04:06.507166
(1 row)
Чтобы получить дату и время в каком-либо часовом поясе, вы можете использовать AT TIME ZONE
конструкцию:
SET TIME ZONE 'UTC';
SELECT datetime AT TIME ZONE 'GMT-5' FROM datetimetest;
timezone
-------------------------------
2011-08-15 10:04:06.507166+00
(1 row)