Ini hanya kesalahpahaman yang berasal dari nama tipe yang agak menyesatkan. Zona waktu itu sendiri tidak disimpan sama sekali . Itu hanya bertindak sebagai offset untuk menghitung stempel waktu (input) UTC, yang sebenarnya disimpan. Atau sebagai penghias dalam tampilan timestamp sesuai dengan zona waktu (output) saat ini atau yang diberikan. Itu semua sesuai dengan standar SQL.
Hanya titik waktu yang disimpan, tidak ada informasi zona. Itu sebabnya 64 bit informasi sudah cukup. Stempel waktu ditampilkan kepada klien sesuai dengan pengaturan zona waktu sesi saat ini.
Detail:
- Mengabaikan zona waktu sama sekali di Rails dan PostgreSQL
Juga, karena Jon menyebutkannya, time with time zone
didefinisikan dalam standar SQL dan dengan demikian diimplementasikan di Postgres, tetapi penggunaannya tidak disarankan:
time with time zone
didefinisikan oleh standar SQL, tetapi definisi tersebut menunjukkan properti yang mengarah pada kegunaan yang meragukan.
Ini adalah tipe ambigu yang tidak dapat menangani DST dengan benar.