Tipos SQL y números Unix
El tipo SQL TIMESTAMP no representa siempre un número entero de segundos. Su rango, precisión y gestión de zonas horarias dependen del motor. Para el almacenamiento, consulta las guías de PostgreSQL, MySQL y MariaDB.
PostgreSQL
to_timestamp() convierte segundos Unix a timestamp with time zone. La visualización depende de la zona horaria de la sesión. Aquí la salida se expresa explícitamente en 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 sin zona horaria cuyos campos representan UTC. Mantén esta convención al enviarlo a otra aplicación.
MySQL
FROM_UNIXTIME() muestra los valores en la zona horaria de la sesión. Configúrala antes de consultar para obtener resultados reproducibles.
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
El modificador unixepoch interpreta el número como segundos Unix. Sin el modificador localtime, la visualización se mantiene en UTC.
SELECT datetime(1711972800, 'unixepoch');
-- 2024-04-01 12:00:00
SELECT strftime('%s', '2024-04-01T12:00:00Z');
-- '1711972800' (texte)El tipo SQL TIMESTAMP no siempre es un entero Unix. Comprueba el tipo, la precisión y las convenciones de zona horaria del motor y de la aplicación.
Referencias
PostgreSQL · MySQL · SQLite
Versión en español publicada el 26 de septiembre de 2026.