Di sini, di London, kami saat ini 1 jam lebih cepat dari UTC. Jadi - jika saya mengambil zona waktu Anda tanpa stempel waktu dan mengatakan itu dalam UTC, saya akan mencetaknya untuk zona waktu lokal saya.
richardh=> SELECT ((timestamp '2015-10-24 16:38:46') AT TIME ZONE 'UTC');
timezone
------------------------
2015-10-24 17:38:46+01
(1 row)
Tetapi Anda menginginkan "EST" yang tampaknya ada di suatu tempat di Amerika, dilihat dari nilai yang dikembalikan. Anda dapat membungkus ekspresi dalam fungsi SQL kecil jika Anda mau.
richardh=> SELECT ((timestamp '2015-10-24 16:38:46') AT TIME ZONE 'UTC') AT TIME ZONE 'EST';
timezone
---------------------
2015-10-24 11:38:46
(1 row)
Sunting:cara melakukannya dalam kueri
SELECT ((stored_timestamp AT TIME ZONE 'UTC') AT TIME ZONE 'EST') AS local_timestamp
FROM my_table;
Anda mungkin ingin mendapatkan buku pengantar tentang SQL jika hal semacam ini menyebabkan masalah bagi Anda.