Formatear fechas en MySQL con la función date_format()

Formatear fechas en MySQL con la función date_format()

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 desarrollo para conseguir tal formato. Aunque 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 es con la cual estaremos elaborando este tutorial.

Ejemplo 1: Formateo sencillo

Este es el ejemplo más sencillo en el que formatearemos una fecha almacenada de la siguiente forma 2013-06-12 a una fecha del 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.

El formato posee las siguientes configuraciones:

  • %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.

Nota: Existe una gran variedad de formatos a aplicar. Pueden 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.

Una acotación de seguridad que deben aplicar a sus sentencias SQL es finalizarlas con ";" (punto y coma) ya que ese simple símbolo le da cierto grado de seguridad a las mismas.

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:

SET lc_time_names = 'es_VE';

Con ella se configura el idioma a utilizar en los resultados. Pueden ver 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 muy similar a la anterior con la excepción que el segundo parámetro pasado a la función date_format 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 de este post y como siempre espero les haya resultado de utilidad para formatear las fechas de sus consultas SQL y lo compartan en las redes sociales.

Comentarios

Deja tu comentario

http://