Tipi SQL e numeri Unix
Il tipo SQL TIMESTAMP non è universalmente un conteggio intero di secondi. Intervallo, precisione e supporto dei fusi dipendono dal motore di database. Per la memorizzazione, consulta le guide dedicate a PostgreSQL, MySQL e MariaDB.
PostgreSQL
to_timestamp() converte i secondi Unix in timestamp with time zone. La visualizzazione dipende dal fuso della sessione. Qui il risultato è esplicitamente UTC.
SELECT to_timestamp(1711972800) AT TIME ZONE 'UTC';
-- 2024-04-01 12:00:00
SELECT EXTRACT(EPOCH FROM TIMESTAMPTZ '2024-04-01 12:00:00+00');
-- 1711972800.000000AT TIME ZONE 'UTC' produce un timestamp senza fuso i cui campi rappresentano l'UTC. Mantieni questa convenzione quando lo passi a un'altra applicazione.
MySQL
FROM_UNIXTIME() visualizza i valori nel fuso della sessione. Impostalo prima della query per risultati riproducibili.
SET time_zone = '+00:00';
SELECT FROM_UNIXTIME(1711972800);
-- 2024-04-01 12:00:00
SELECT UNIX_TIMESTAMP('2024-04-01 12:00:00');
-- 1711972800SQLite
Il modificatore unixepoch interpreta il numero come secondi Unix. Senza il modificatore localtime, la visualizzazione rimane UTC.
SELECT datetime(1711972800, 'unixepoch');
-- 2024-04-01 12:00:00
SELECT strftime('%s', '2024-04-01T12:00:00Z');
-- '1711972800' (texte)Il tipo SQL TIMESTAMP non è sempre un intero Unix. Controlla tipo, precisione e convenzioni sui fusi del motore di database e dell'applicazione.
Riferimenti
PostgreSQL · MySQL · SQLite
Versione italiana pubblicata il 26 settembre 2026.