PostgreSQL

timestamp without time zone causes silent data corruption across timezones

critical
configurationUpdated Mar 4, 2026
Technologies:
How to detect:

timestamp (without time zone) stores date/time without timezone information, so PostgreSQL cannot determine if '2024-03-15 14:30:00' is UTC, Eastern, or Tokyo time. When application servers are in different timezones or a server's timezone changes, data becomes silently incorrect.

Recommended action:

Always use timestamptz (timestamp with time zone): CREATE TABLE orders (created_at timestamptz NOT NULL DEFAULT now(), shipped_at timestamptz). timestamptz stores values in UTC internally and converts to/from session timezone automatically, ensuring consistent behavior regardless of server or client settings.