Funciones de fechas en MySQL. Meses en español

Hola, hoy vamos a hablaros sobre cómo crear funciones de fechas en MySQL para que nos muestren la información en español u otros idiomas. MySQL cuenta con funciones nativas para ello, pero devuelve las fechas, y los días en inglés. Con la función que os vamos a enseñar, podrás mostrar mostrar de forma sencilla los meses en español sin tener que hacer una condición por cada uno de ellos.

Por ejemplo, la función nativa MONTHNAME() nos devuelve el nombre del mes en inglés, en base a una fecha que le pasemos.

 mysql> SELECT MONTHNAME('2008-02-03');         
        -> 'February' 

Basándonos en esta función vamos a crear una vista que nos devuelva el número de altas por mes y año. Crearemos una función para devolver los meses en español y mostrarlos en la vista.

¿Cómo crear las funciones de fechas?

En primer lugar necesitaremos pasarle dos datos por este orden:

  • Fecha
  • Formato

Este último, el formato, es el que usaremos para definir el idioma en el que queremos que aparezca. De esta forma, podemos reciclarlo para usarlo con otros idiomas.

La estructura sería la siguiente:

DELIMITER $$
 CREATE FUNCTION mes(_d DATE, _locale VARCHAR(5)) RETURNS varchar(22) CHARSET utf8
     DETERMINISTIC
 BEGIN
     SET @@lc_time_names = _locale;
     RETURN DATE_FORMAT(_d, '%M');
 END$$
 DELIMITER ;

Para usarla deberemos incluir en nuestra SELECT la función mes(fecha,formato), por ejemplo:

select mes(fechaAlta, 'es_ES')

Creación de la vista

Ahora que sabemos ya como usarla. Vamos a empezar a sacarle partido con la siguiente vista:

CREATE VIEW v_altas_por_mes AS
select 
concat(mes(usuarios.fechaAlta,'es_ES'),' ',year(usuarios.fechaAlta)) AS Fecha alta,
count(0) AS Total 
from usuarios 
group by year(usuarios.fechaAlta),month(usuarios.fechaAlta)

Si la ejecutamos obtendremos:

Función de fechas en MySQL GPSOS

Este es un sencillo ejemplo del potencial de las vistas y la creación de funciones. En este caso lo hemos aplicado a las fechas pero puede servir de base para otros propósitos.

Si necesitas que te ayudemos con alguna función, para crearla u optimizarla, no dudes en contactarnos sin compromiso en nuestra página de contacto.

Esperamos que os haya sido de utilidad. Si no quieres perder esta entrada ni ninguna de nuestras publicaciones, sucríbete a nuestra newsletter para estar al día de todas nuestras publicaciones. Con un solo email al mes estarás informado.