Cómo manejar fechas en MySQL (Explicación Formato Date)

mysql

Una de las cosas un tanto complejas de manejar por parte de programadores y gestores de bases de datos es el manejo de fechas y sus formatos; este es un tipo de dato que requiere de atención. En vista que pueden tomar distintas posiciones los valores de una fecha e inclusive si lleva el valor hora, hoy veremos cómo manejar fechas en MySQL. Así mismo miraremos como podemos establecer distintos tipos de formatos al momento de crear una tabla con atributos tipo Date.

Cómo manejar fechas en MySQL (Formato Date)

Para manejar campos tipo fecha en una base de datos MySQL, debemos tener en cuenta que este tipo de campo; se caracteriza por tener un formato constituido por tres valores: Día, Mes y Año.

Teniendo en cuenta lo anterior, MySQL establece para los campos tipo Date la siguiente estructura:

Formato DATE: YYYY-MM-DD

Indicando que primero viene el año, luego el mes y por último el día.

Por lo tanto, si creamos una tabla con un campo tipo Date:

CREATE TABLE `tabla`( 
`fecha` DATE 
);

Se debe pasar el valor de la fecha en formato: YYYY-MM-DD, por ejemplo 2020-03-25.

El verdadero reto al utilizar campos tipo Date en MySQL

Lo que comúnmente sucede es que algunos programadores y gestores de bases de datos, confunden los campos de tipo Date o fecha con valores numéricos. Siendo un campo Date un valor totalmente diferente, es un campo formateado.

Otra situación muy común, es ejecutar consultas SQL con valores tipo fecha en el formato erróneo, esto lo que hace es que la fecha que se intenta guardar no se almacena en el campo, veamos un ejemplo.

Error guardando una fecha en MySQL con formato erróneo

Supongamos que tenemos una tabla con un solo campo y este es tipo date, e intentamos ejecutar un Insert para guardar una fecha, este campo espera un valor Date con formato YYYY-MM-DD; sin embargo nosotros ejecutamos:

INSERT INTO tabla(fecha) VALUES ("25-03-2020");

Si observamos la consulta SQL anterior, no envía la fecha en el formato esperado por el campo tipo Date de nuestra tabla, por lo tanto obtenemos:

Cómo manejar fechas en MySQL

La fecha no es guardada, por lo tanto. No nos sirve el orden en que enviamos los datos, debemos reescribir la consulta.

INSERT INTO tabla(fecha) VALUES ("2020-03-25");

La consulta anterior si cumple con el formato esperado por el campo y podrá recibirlo para almacenarlo.

Cómo manejar fechas en MySQL

Finalmente, es importante cumplir con los formatos establecidos en la base de datos; de lo contrario, será un dolor de cabeza los registros almacenados con valores erróneos.

Esto podemos corregirlo al momento de programar envíos de datos a una tabla que tiene valores tipo Date, probando los valores enviados y verificando que estos se almacenan de forma correcta.

En algunas ocasiones recibimos los valores de forma individual; para formar un único valor tipo Date, esto podemos lograrlo mediante el lenguaje de programación que estemos utilizando.

Otros formatos que podemos tener presente para fechas en MySQL son:

  • DATETIME: YYYY-MM-DD HH:MI:SS
  • TIMESTAMP: YYYY-MM-DD HH:MI:SS
  • YEAR: YYYY or YY (Para el manejo de años)

Como recomendación final: es viable manejar los campos tipo fecha solo para este valor, si deseas registrar la hora. Procura hacerlo en un campo adicional, esto en vista que se pueden ver afectados los resultados de tus consultas. A la vez que se van haciendo más complejas de construir.

¡Suscríbete a mi canal, para acceder a más contenidos gratuitos!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *