La diferencia entre DATETIME
y TIMESTAMP
en SQL radica en cómo almacenan la fecha y hora, y cómo manejan zonas horarias. Aquí están las principales diferencias:
DATETIME
: Almacena la fecha y hora como un valor literal, sin tomar en cuenta la zona horaria.
1000-01-01 00:00:00
a 9999-12-31 23:59:59
(en MySQL).TIMESTAMP
: Almacena la fecha y hora en formato UTC (Tiempo Universal Coordinado) y los convierte automáticamente al huso horario del servidor o cliente al ser consultados.
1970-01-01 00:00:01 UTC
a 2038-01-19 03:14:07 UTC
.DATETIME
:
TIMESTAMP
:
DATETIME
:
TIMESTAMP
:
CREATE TABLE ejemplo (
fecha_datetime DATETIME,
fecha_timestamp TIMESTAMP
);
INSERT INTO ejemplo (fecha_datetime, fecha_timestamp)
VALUES ('2024-11-25 15:00:00', '2024-11-25 15:00:00');
DATETIME
: Siempre muestra 2024-11-25 15:00:00
.TIMESTAMP
: Puede ajustarse según la configuración de la zona horaria del servidor/cliente.DATETIME
si no necesitas manejar zonas horarias o si quieres mantener valores fijos.TIMESTAMP
si trabajas con sistemas distribuidos que necesitan sincronización entre diferentes zonas horarias.