najpierw sprawdź domyślna timezone bazy
show timezone;
Jeśli jest inna niż czas UTC ustaw ją czas UTC poleceniem
set timezone='Etc/Zulu';
poniżej masz selecta pokazującego sposób konwersji
SELECT czas as czas_without_timezone
,czas at time zone 'Africa/Juba' as czas_without_bledna_nonwersja
,cast (czas as TIMESTAMP WITH TIME ZONE) as czas_biezace_timezone
,cast (czas as TIMESTAMP WITH TIME ZONE) AT TIME ZONE 'Africa/Juba' as czas_time_zone_juba_africa
from (select TIMESTAMP WITHout TIME ZONE '2015-02-16 20:38:40' as czas) c;
po czym przywróć zmienną timezone
reset timezone;
najprostszym sposobem konwersji jest przypisanie zmiennej timezone do użytkownika np
ALTER ROLE postgres IN DATABASE test SET TimeZone = 'America/New_York';
wyloguj i zaloguj się do bazy i sprawdź czas select localtimestamp,current_timestamp;
wykaz wszystkich stref czasowych masz tu select * from pg_timezone_names;
pobaw się trochę tymi selectami na 2 różnych użytkownikach z różnymi strefami czasowymi i przekonwertuj pole w którym przechowywałeś czas UTC na timestamp with time zone.