Ver Mensaje Individual
  #3 (permalink)  
Antiguo 28/01/2011, 10:21
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: convertir numero a mes literal

Hola arturograjeda, hay un pequeño detalle con mysql y es que te regresa los nombres de los meses en inglés, por ejemplo, para la consulta que coloca LENINCASCO el resultado es 'Jan' (El especificador %b te regresa el mes abreviado, para obtener el nombre completo deberás utilizar el especificador %M).

Además está el hecho de cómo están regresando los datos de tu consulta, es decir, según entendí es un solo registro el que contiene la concatenación de los meses separados por comas.

Tengo que reconocer que no tengo mucho conocimiento con la utilización de funciones en MySQL, pero se me ocurre que generes una función para remplazar los meses por su respectiva descripción, es decir algo como esto:

Código:
CREATE FUNCTION `pruebas`.`NombreMeses`(numeroMeses varchar(100))
RETURNS varchar(100)
BEGIN
if (instr(numeroMeses, '10') > 0) then
set numeroMeses = replace(numeroMeses, '10', 'Octubre');
end if;
if (instr(numeroMeses, '11') > 0) then
set numeroMeses = replace(numeroMeses, '11', 'Noviembre');
end if;
......
......
......
return numeroMeses;
END
El único cuidado que hay que tener es hacer primero el remplazo de los meses 10, 11 y 12 antes que el 1.

de tal manera que la invocación quedaría así

Código:
select NombreMeses('1,2,3');

--> Enero,Febrero,Marzo
Hice algunas pruebas sin el IF-INSTR pero si la función REPLACE no generaba ningún remplazo me regresaba un null, te repito, no tengo mucha experiencia con funciones, igual y existe alguna otra forma de hacerlo.

Tampoco tengo conocimiento de PHP, pero imagino que puede existir alguna manera más fácil de hacerlo mediante este lenguaje, ojalá que alguien más tenga una mejor solución.

Saludos
Leo.