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 FUNCTIONmes
(_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
)) ASFecha alta
, count(0) ASTotal
fromusuarios
group by year(usuarios
.fechaAlta
),month(usuarios
.fechaAlta
)
Si la ejecutamos obtendremos:

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.
¿Aún no conoces Query Performance? Descubre cómo puede ayudarte en tu entorno Oracle. Más información en su página de LinkedIn.
Sígue a GPS en LinkedIn