timestamp non è timestamptz
timestamp without time zone memorizza campi di data e ora senza fuso orario. timestamp with time zone, abbreviato in timestamptz, rappresenta un istante. Il fuso geografico originale non viene conservato nel valore.
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');Convertire da e verso 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.000000Interpretare una data locale
Se è noto che una colonna senza fuso rappresenta l'ora di Parigi, AT TIME ZONE 'Europe/Paris' la interpreta in quel fuso. Controlla le ore ambigue durante i cambi dell'ora prima di una migrazione.
SELECT TIMESTAMP '2024-04-01 14:00:00'
AT TIME ZONE 'Europe/Paris';Il risultato timestamptz viene visualizzato secondo il fuso della sessione. Impostare SET TIME ZONE 'UTC' facilita la diagnosi; non cambia l'istante memorizzato.
Riferimenti
Versione italiana pubblicata il 26 settembre 2026.