Impostare il fuso orario della sessione
Le funzioni di conversione MySQL dipendono dal fuso della sessione. In questo esempio la sessione è impostata su UTC.
SET time_zone = '+00:00';
SELECT FROM_UNIXTIME(1711972800);
-- 2024-04-01 12:00:00
SELECT UNIX_TIMESTAMP('2024-04-01 12:00:00');
-- 1711972800TIMESTAMP o DATETIME?
MySQL converte i valori TIMESTAMP tra il fuso della sessione e l'UTC durante scrittura e lettura. DATETIME memorizza i campi del calendario senza questa conversione automatica. Nessuno dei due tipi memorizza da solo il nome di un fuso come Europe/Paris.
CREATE TABLE events (
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
occurred_at TIMESTAMP(6) NOT NULL
);
INSERT INTO events (occurred_at)
VALUES ('2024-04-01 12:00:00.123456');Controllare intervallo e precisione
In MySQL 8.4, TIMESTAMP è ancora limitato all'intervallo dal 1970 a gennaio 2038. DATETIME ha un intervallo diverso. Consulta la documentazione della tua versione prima di scegliere un tipo per date di nascita o scadenze lontane.
Le frazioni vanno specificate nella definizione della colonna, per esempio TIMESTAMP(6). Le conversioni locali vicine ai cambi dell'ora possono essere ambigue; scambia gli istanti in UTC quando possibile.
Riferimenti
Versione italiana pubblicata il 26 settembre 2026.