At their core, both types occupy of storage and represent date and time with microsecond precision. However, their behavior during input and output is fundamentally different:
In a modern, distributed environment, your database server might be in Virginia, your application server in Ireland, and your user in Tokyo. If you use TIMESTAMP , a record created at "9:00 AM" becomes ambiguous. Was that 9:00 AM for the user or the server? TIMESTAMPTZ forces every entry into the universal language of UTC, ensuring that "now" means the same physical moment for every component of the system. postgres timestamp vs timestamptz
If a user schedules a recurring "8:00 AM" alarm, they likely want it to go off at 8:00 AM regardless of whether the government changes DST laws or if they move to a new timezone. At their core, both types occupy of storage
Here is the secret: