Formatear fechas en MySQL con la función date_format

Formatear fechas en MySQL con la función date_format
  • Eborio Linárez
  • June 12, 2013
  • 0

Es conocido para todos nosotros los desarrolladores que MySQL almacena las fechas en el formato 2013-06-12 y en ocasiones deseamos mostrarlas en un formato diferente, por ejemplo 12/06/2013 o en este otro un poco más complejo Miércoles 12 de Junio de 2013, y recurrimos a complejas funciones elaboradas en algún lenguaje de programación para conseguir tal formato. Cabe destacar que en ciertos lenguajes es sencillo conseguir tal resultado, pero en ocasiones puede resultar bastante útil formatear las fechas directamente en la consulta SQL.

MySQL posee una función especialmente diseñada para el formateo de fechas. Tal función es date_format y con ella formatearemos las fechas en el presente artículo.

Ejemplo 1: Formateo sencillo

Este es el ejemplo más sencillo en el que formatearemos una fecha almacenada en el formato 2013-06-12 a una fecha con el siguiente formato 12/06/2013.

Para conseguir este objetivo debemos ejecutar una sentencia SQL similar a la siguiente:

SELECT date_format(date,'%d/%m/%Y') AS modified_date FROM posts;

Como pueden observar en la sentencia SQL se utiliza la mencionada función date_format la cual recibe 2 parámetros: el primero es el campo de la tabla que almacena la fecha a formatear; y el segundo es el formato a aplicarle. Dicho formato debe ir entre comillas.

Veamos detalladamente cada parte del formato pasado como segundo parámetro.

  • %d: Genera el día en formato de 2 dígitos.
  • %m: Genera el mes en formato de 2 dígitos.
  • %Y: Genera el año en formato de 4 dígitos.

Existe una gran variedad de formatos a aplicar. Puedes acceder al listado completo en la documentación oficial de MySQL.

Adicionalmente y por comodidad se le debe dar un alias al resultado, es por ello que se utiliza la clausula AS para aplicar tal alias. Al momento de visualizar dicho resultado no lo haríamos con el nombre original del campo, sino a través de su alias.

Ejemplo 2: Formateo complejo

Ahora formatearemos una fecha desde el formato 2013-06-12 al formato Miércoles 12 de Junio de 2013. Para ello primero debemos ejecutar la siguiente sentencia para establecer el idioma con el cual se mostrarán los resultados.

SET lc_time_names = 'es_VE';

Puedes acceder a la lista completa de idiomas disponibles también en la documentación oficial de MySQL.

Luego ejecutamos la siguiente sentencia:

SELECT date_format(date,'%W %d de %M de %Y') AS modified_date FROM posts;

La sentencia es igual a la del primer ejemplo, solo que el formato pasado como segundo parámetro es diferente.

  • %W: Genera el nombre del día de la semana
  • %d: Al igual que el ejemplo anterio muestra el día en formato de 2 dígitos.
  • %M: Muestra el nombre del mes.
  • %Y: También, al igual que el ejemplo anterior genera el año en formato de 4 dígitos.

También podrán apreciar algunos conectivos mezclados con la configuración del formato, los cuales serán agregados al resultado final de la sentencia.

Llegamos al final del post. Espero te sea de utilidad y no olvides compartirlo en las redes sociales.

Comparte en las redes sociales

Comentarios

Aún no hay comentarios. Sé el primero en comentar.

Deja un comentario