DATETIME vs TIMESTAMP en MySQL

Mehvish Ashiq 30 enero 2023
  1. Similitudes de DATETIME y TIMESTAMP
  2. Diferencias de DATETIME y TIMESTAMP
  3. Ejemplo para entender el uso de DATETIME y TIMESTAMP en MySQL
  4. Conclusión
DATETIME vs TIMESTAMP en MySQL

DATETIME y TIMESTAMP son dos tipos de datos diferentes que puede usar para almacenar un valor que debe contener la parte de fecha y hora.

En este artículo aprenderemos sobre el formato en el que se almacena en la base de datos y la memoria requerida por cada tipo de datos. También veremos las similitudes y diferencias de ambos tipos de datos y trataremos de entender a través de un ejemplo.

Similitudes de DATETIME y TIMESTAMP

DATETIME y TIMESTAMP tienen algunas similitudes que se enumeran a continuación:

  • Ambos almacenan el mismo tipo de datos, con dos partes (fecha y hora).
  • Ambos tienen el mismo formato a la hora de consultarlos.
  • El formato de almacenamiento en la base de datos es el mismo (YYYY-MM-DD hh:mm:ss).
  • Ambos necesitan bytes adicionales para obtener una precisión de fracciones de segundo.
  • Cada vez que se actualizan los registros, ambos pueden cambiar los datos con la fecha y hora actual.

Diferencias de DATETIME y TIMESTAMP

DATETIME y TIMESTAMP tienen las siguientes diferencias:

  • DATETIME y TIMESTAMP requieren 5 bytes y 4 bytes, respectivamente.
  • TIMESTAMP se ve afectado por la zona horaria, pero DATETIME permanece constante.
  • El rango admitido para DATETIME y TIMESTAMP es '1000-01-01 00:00:00' a '9999-12-31 23:59:59' y '1970-01-01 00:00:01'UTC a '2038-01-19 03:14:07' UTC, respectivamente.
  • DATETIME no se puede indexar mientras que TIMESTAMP sí.
  • Las consultas con TIMESTAMP se almacenarán en caché, pero no es el caso con DATETIME.

Ejemplo para entender el uso de DATETIME y TIMESTAMP en MySQL

Supongamos que tiene una cafetería en su país. Cada cliente recibe una factura después de pagar la factura.

Esta factura tiene fecha y hora además de otros detalles. Como está administrando la tienda en su país solo donde todos sus clientes estarán en la misma zona horaria, usará DATETIME.

Cambiemos un poco este escenario; ahora tienes diez cafeterías en varios países, cada país tiene su zona horaria. Los clientes también recibirán facturas allí, pero ¿cómo puede mostrar la fecha y la hora de acuerdo con la zona horaria de los clientes?

Aquí usarás TIMESTAMP. ¿Por qué? Debido a que TIMESTAMP se ve afectado por la zona horaria, lo que significa que el valor de TIMESTAMP se convertirá de la zona horaria actual (hora del servidor) a UTC (zona horaria universal) para el almacenamiento y de vuelta a la zona horaria actual (hora del servidor). ) en la recuperación.

Código de ejemplo:

Ejecute el siguiente código en su MySQL (estamos usando MySQL 8.0.27 para este tutorial) y vea el resultado que se muestra después del código.

#create schema
CREATE SCHEMA db_practice_datetime_timestamp;

#create table
CREATE TABLE practice_datetime_and_timestamp (
    ID INT AUTO_INCREMENT PRIMARY KEY,
    DATE_TIME DATETIME,
    TIME_STAMP TIMESTAMP
    );
#insert data   
INSERT INTO practice_datetime_and_timestamp(TIME_STAMP,DATE_TIME)
VALUES(NOW(),NOW());

#read data
SELECT DATE_TIME, TIME_STAMP from practice_datetime_and_timestamp;

Producción:

datetime vs timestamp en mysql - fecha parte a

Ahora, ejecute el código que se proporciona a continuación y vea su resultado.

SET time_zone = '-05:00';
SELECT DATE_TIME, TIME_STAMP from practice_datetime_and_timestamp;

Producción:

fecha y hora vs marca de tiempo en mysql - fecha parte b

Es posible que haya notado que la hora ha cambiado para la columna TIME_STAMP, pero los datos para DATE_TIME siguen siendo los mismos.

Conclusión

En esta discusión, hemos concluido que DATETIME y TIMESTAMP almacenan los mismos datos según sus necesidades. Si desea que sus datos se vean afectados por la zona horaria, vaya a TIMESTAMP. De lo contrario, es bueno usar DATETIME.

Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook