Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

convertir numero a mes literal

Estas en el tema de convertir numero a mes literal en el foro de Mysql en Foros del Web. tengo una consulta en mi base de datos que me arroja datos como estos: "1,2,3,4,5" lo que quiero hacer es convertirlos a meses con php ...
  #1 (permalink)  
Antiguo 27/01/2011, 21:36
 
Fecha de Ingreso: diciembre-2010
Mensajes: 7
Antigüedad: 13 años, 4 meses
Puntos: 0
convertir numero a mes literal

tengo una consulta en mi base de datos que me arroja datos como estos:


"1,2,3,4,5"

lo que quiero hacer es convertirlos a meses con php

"enero, febrero, marzo, abril, mayo"

agradeceria mucho sus comentarios.
  #2 (permalink)  
Antiguo 27/01/2011, 22:00
 
Fecha de Ingreso: enero-2010
Ubicación: Estelí, Nicaragua
Mensajes: 157
Antigüedad: 14 años, 3 meses
Puntos: 8
Respuesta: convertir numero a mes literal

hola.

aqui mi idea
Código MySQL:
Ver original
  1. SELECT date_format(concat('0000-','1','-00'), '%b')

el '1' seria tu digito regresado por la consulta
  #3 (permalink)  
Antiguo 28/01/2011, 10:21
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 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.
  #4 (permalink)  
Antiguo 31/01/2011, 20:40
 
Fecha de Ingreso: diciembre-2010
Mensajes: 7
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: convertir numero a mes literal

muchas gracias por sus sugerencias pero lo que necesito es la funcion en php, la consulta en mysql ya la tengo, solo que recibo numeros y necesito convertirlos a meses.
  #5 (permalink)  
Antiguo 01/02/2011, 01:43
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: convertir numero a mes literal

arturograjeda,
eso debes pedirlo en el foro PHP. Es fácil, pero pregunta allí. Aquí no podemos responder código que no sea SQL o el propio de MySQL, o que poco tengan que ver con la base de datos.
  #6 (permalink)  
Antiguo 01/02/2011, 11:43
Avatar de triibhals  
Fecha de Ingreso: agosto-2010
Mensajes: 93
Antigüedad: 13 años, 7 meses
Puntos: 1
Respuesta: convertir numero a mes literal

Bueno lo que hago aqui Basicamente Tomo el mes de la fecha actual.
Y la guardo en el $mespru.
$mespru es igual al Mes en numero.

Código PHP:

$sql
="SELECT month(now()) as mes";
$result=mysql_query($sql,$link);
$row=mysql_fetch_array($result);

$mespru=$row["mes"];/*Aqui asigno la variable de la consulta a mespru*/

/* Lo siguiente son 12 if que comparan si $mespru es igual a dichos numeros y asi asignara a $varmes el Mes en texto */
if($mespru==1){
$varmes="Enero";
}

if(
$mespru==2){
$varmes="Febrero";
}

if(
$mespru==3){
$varmes="Marzo";
}

if(
$mespru==4){
$varmes="Abril";
}

if(
$mespru==5){
$varmes="Mayo";
}

if(
$mespru==6){
$varmes="Junio";
}

if(
$mespru==7){
$varmes="Julio";
}

if(
$mespru==8){
$varmes="Agosto";
}

if(
$mespru==9){
$varmes="Septiembre";
}

if(
$mespru==10){
$varmes="Octubre";
}

if(
$mespru==11){
$varmes="Noviembre";
}

if(
$mespru==12){
$varmes="Diciembre";

Espero te sirva es una forma sencilla de hacer un numero consultado a letra

Etiquetas: numero
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:15.