timestamp no es timestamptz
timestamp without time zone almacena campos de fecha y hora sin zona horaria. timestamp with time zone, abreviado como timestamptz, representa un instante. El valor no conserva la zona horaria geográfica original.
CREATE TABLE events (
id bigint GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
occurred_at timestamptz NOT NULL
);
INSERT INTO events (occurred_at)
VALUES ('2024-04-01T14:00:00+02:00');Convertir desde y hacia Unix
SELECT to_timestamp(1711972800) AT TIME ZONE 'UTC';
-- 2024-04-01 12:00:00
SELECT EXTRACT(EPOCH FROM TIMESTAMPTZ '2024-04-01T14:00:00+02:00');
-- 1711972800.000000Interpretar una fecha local
Si se sabe que una columna sin zona horaria representa la hora de París, AT TIME ZONE 'Europe/Paris' la interpreta en esa zona horaria. Comprueba las horas ambiguas durante los cambios de hora antes de una migración.
SELECT TIMESTAMP '2024-04-01 14:00:00'
AT TIME ZONE 'Europe/Paris';El timestamptz se muestra según la zona horaria de la sesión. Configurar SET TIME ZONE 'UTC' facilita el diagnóstico; no cambia el instante almacenado.
Referencias
Versión en español publicada el 26 de septiembre de 2026.