Tipo de marca de tiempo mysql

Tipo de marca de tiempo mysql

Este tutorial cubrirá los conceptos básicos de trabajar con el tipo de datos de marca de tiempo en MySQL.

El tipo de datos de la marca de tiempo le permite almacenar valores de fecha y hora en el formato de la marca de tiempo como YYYY-MM-DD HH: MM: SS.

El valor de un tipo de datos de marca de tiempo en MySQL varía de 1970-01-01 00:00:01 a 2038-01-19 03:14:07 en UTC.

Al almacenar un valor de marca de tiempo, MySQL convertirá la hora actual en UTC y la almacenará en la tabla de destino. MySQL convertirá el valor de UTC a la hora actual durante la recuperación. Es bueno recordar que esta función solo se aplica al tipo de datos de la marca de tiempo.

Por lo tanto, dado que la zona horaria se puede configurar en una sesión determinada, mi SQL le permite recuperar el mismo valor almacenado siempre que la zona horaria permanezca constante.

Ejemplo de zona horaria de MySQL

Cubremos un ejemplo de cómo trabajar con el tipo de datos de marca de tiempo en MySQL. Considere la tabla a continuación con una columna de marca de tiempo.

Crear base de datos TEMPDB;
usar tempdb;
crear muestra de tabla (
ID int Auto_Increment Key primario,
t TimeStamp
);
establecer Time_zone = '+03:00';


La consulta anterior crea una base de datos de muestra y una tabla con una columna de marca de tiempo. También establecemos la zona horaria para la sesión usando el parámetro Time_zone.

Luego podemos insertar valores de fecha y hora en la columna como se muestra en la consulta a continuación:

insertar en la muestra (t)
valores ('2022-10-10 23:45:23'),
('2020-12-10 13:43:32'),
('1990-10-10 16:23:32');


Luego podemos seleccionar los valores de la marca de tiempo de la tabla como se muestra:

seleccionar * de la muestra;


Resultado:

Demostrando el uso de la zona horaria en la marca de tiempo

Como se mencionó, si la zona horaria es constante, podemos obtener el mismo valor que guardamos en la tabla, como se demostró anteriormente.

Veamos qué valores obtenemos si cambiamos el valor de la zona horaria:

establecer Time_zone = '-7: 00';
seleccionar * de la muestra;


Si ejecutamos la declaración anterior, debemos obtener una tabla con el valor como se muestra:


Observe que obtenemos valores diferentes de lo que guardamos. Esto ocurre debido al cambio en la zona horaria.

Uso de inicialización automática utilizando el tipo de datos de marca de tiempo

Podemos inicializar automáticamente una columna dada configurando la restricción predeterminada en el Current_Timestamp.

En el caso, MySQL insertará el valor actual de la marca de tiempo en una fila dada, como se muestra en el siguiente ejemplo:

crear muestra de tabla (
ID int Auto_Increment Key primario,
t TimeStamp predeterminado Current_Timestamp
);


Luego podemos insertar valores en la tabla como se muestra:

Insertar en la muestra (ID)
valores (1), (2), (3);


Como puede notar, no proporcionamos la columna T. Esto debería obligar a MySQL a usar el valor predeterminado como se muestra:

seleccionar * de la muestra;


Producción:


Como puede ver, todas las filas comparten el mismo valor de marca de tiempo que denota el tiempo de inserción. Esta característica se conoce como inicialización automática.

Conclusión

En este ejemplo, discutimos los fundamentos de trabajar con el tipo de datos de marca de tiempo en MySQL.