En este tutorial vamos a explicar esta nueva mejora introducida a partir de MySQL 5.6 en la que se permite ya trabajar con precisión de milisegundos en registros de tipo fecha almacenados.
Para poder almacenar milisegundos la columna de la tabla deberá definirse como DATETIME. También existen otros tipos de datos para almacenar fechas como por ejemplo TIMESTAMP, pero utilizando este únicamente conseguiremos un precisión de segundos.
A partir de la versión 5.6 podremos indicarle a MySQL que el campo DATETIME tiene una precisión de hasta 6 decimales. Para indicar con cuantos queremos trabajar únicamente debemos definirlo de esta forma: DATETIME(n), siendo ‘n’ un número entero entre 0 y 6.
Hasta ahora en las base de datos MySQL se definían los campos fecha como DATETIME. Esto truncará los milisegundos que se indiquen en las consultas de INSERT, redóndeando al entero más cercano.
Por ejemplo si ejecutamos esta consulta:
1 |
INSERT INTO fechas (fecha_actual) VALUE ('2014-10-09 12:25:53.660'); |
En base de datos veremos que lo que se ha almacenado es “2014-10-09 12:25:54“, habiéndose redondeado los milisegundos al segundo por encima.
Configurar campo de base datos con precisión de milisegundos DATETIME(3)
En cambio, si ahora configuramos la tabla para tenga precisión de milisegundos y ejecutamos la misma consula podremos ver que ahora sí se están guardando los milisegundos. Lo primero será modificar la definición de la columna en nuestra tabla.
Para modificar la definición de la columna debemos ejecutar una consulta con este formato:
1 |
ALTER TABLE fechas MODIFY fecha_actual DATETIME(3); |
Ahora podemos ejecutar de nuevo el insert anterior y comprobaremos que ahora en la base de datos se está almacenando la fecha con los milisegundos que le hemos indicado en la consulta: “2014-10-09 12:25:53.660“.
Deja tu comentario