En este post de bases de datos en MySQL / MariaDB te enseñaré a formatear fechas en MySQL o mejor dicho a cambiar el formato de una fecha al hacer una consulta, usando date_format
.
El formato más usado es YYYY-MM-DD pero en ocasiones es necesario cambiarlo a, por ejemplo, DD-MM-YYYY. Justamente de eso se trata este post.
Sobre date_format
Como lo dije anteriormente, esta función permite formatear una fecha. Yo he probado exitosamente que funciona si el formato original es YYYY-MM-DD
.
Para invocarla usamos dos argumentos en orden: la fecha y el nuevo formato. La función va a devolver la fecha en el formato indicado.
Por cierto, no es necesario que el campo sea de tipo date
, puede ser varchar
sin problema.
Formateando fecha
Para formatear la fecha y convertirla de YYYY-MM-DD a DD-MM-YYYY hacemos lo siguiente:
SELECT date_format(fecha, "%d-%m-%Y") as fecha_formateada from tabla;
Lo que importa aquí es el formato %d-%m-%Y
(si quieres puedes usar /
en lugar de -
) con los modificadores. Si quieres ver la lista completa de modificadores visita este enlace, ya que así puedes crear cualquier formato de fecha.
Ejemplo
Para terminar el post sobre el formato de fechas en MySQL te mostraré un ejemplo. Yo tengo una tabla con un campo llamado fecuc
, y se ve así:
MariaDB [tienda]> select fecuc from productos;
+------------+
| fecuc |
+------------+
| 2021-04-16 |
| 2025-01-01 |
+------------+
2 rows in set (0.043 sec)
Ahora yo quiero cambiar el formato, de modo que la consulta es:
select date_format(fecuc, "%d-%m-%Y") AS fecha from productos;
La salida es correcta:
MariaDB [tienda]> select date_format(fecuc, "%d-%m-%Y") AS fecha from productos;
+------------+
| fecha |
+------------+
| 16-04-2021 |
| 01-01-2025 |
+------------+
2 rows in set (0.001 sec)
MariaDB [tienda]>
Si quieres puedes leer más sobre MySQL aquí.
Simplemente excelente solución, muchas gracias