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

Mostrar el mes de una Fecha

Estas en el tema de Mostrar el mes de una Fecha en el foro de Mysql en Foros del Web. Que tal, Tengo fechas en Mysql guardadas de esta forma: 02/11/2006 Puedo de alguna forma o usando funciones de Mysql mostrar el mes al que ...
  #1 (permalink)  
Antiguo 28/02/2006, 15:33
Avatar de jpogsistem  
Fecha de Ingreso: diciembre-2001
Mensajes: 2.405
Antigüedad: 22 años, 4 meses
Puntos: 4
Mostrar el mes de una Fecha

Que tal,

Tengo fechas en Mysql guardadas de esta forma: 02/11/2006

Puedo de alguna forma o usando funciones de Mysql mostrar el mes al que pertenece esa fecha? Es decir el mes en texto?

Con alguna función de If o algo?

Lo que necesito es que el resultado de ese campo me saque como en este ejemplo: Febrero ó Marzo o el que sea según como esté evolucionando la fecha.

Gracias de Antemano.
__________________
EL LIMITE ES EL UNIVERSO
  #2 (permalink)  
Antiguo 28/02/2006, 18:28
 
Fecha de Ingreso: noviembre-2005
Mensajes: 658
Antigüedad: 18 años, 5 meses
Puntos: 3
Usando esta funcion

select MONTHNAME(fecha)
  #3 (permalink)  
Antiguo 01/03/2006, 15:17
Avatar de jpogsistem  
Fecha de Ingreso: diciembre-2001
Mensajes: 2.405
Antigüedad: 22 años, 4 meses
Puntos: 4
Fijate lo que uso pero no funciona, tampoco sin las comillas;

uso Mysql 4.19

SELECT MONTHNAME('creation_date') as mes, patient_control, patient_name from tabla
__________________
EL LIMITE ES EL UNIVERSO
  #4 (permalink)  
Antiguo 01/03/2006, 15:48
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 5 meses
Puntos: 11
Guarda la fecha en un campo de tipo date, está claro que el campo que usas no es date, seguro colocaste uno de texto. Luego usa la funcion que te han indicado, sin las comillas.
  #5 (permalink)  
Antiguo 02/03/2006, 07:23
Avatar de deadlykyo  
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 747
Antigüedad: 18 años, 4 meses
Puntos: 5
Puedes usar tambien la funcion DATE_FORMAT() de mysql:
Código PHP:
//
mysql>select DATE_FORMAT('1999-12-25','%M');

mysql>select DATE_FORMAT(campoDate,'%M'); 
cya
__________________
"El Conocimiento es de todos, no solo de algunos"
  #6 (permalink)  
Antiguo 02/03/2006, 07:57
Avatar de jpogsistem  
Fecha de Ingreso: diciembre-2001
Mensajes: 2.405
Antigüedad: 22 años, 4 meses
Puntos: 4
Gracias por la ayuda................Evidentemente ha sido una pifia a la hora de crear ese campo, porque está varchar, aunque por php todas las fechas que se han ingresado allí tienen el formato por ejemplo:

12/30/2005


Puedo "Alegremente" cambiar el tipo de dato de ese campo de varchar a date sin que pase nada? o tendrá alguna consecuencia? Algun consejo...

Gracias de antemano.
__________________
EL LIMITE ES EL UNIVERSO
  #7 (permalink)  
Antiguo 02/03/2006, 08:52
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 5 meses
Puntos: 11
Las fechas en formato date se guardan asi: 2005-12-30, por tanto, al cambiar de tipo el campo debería darte un error y no podrías cambiarlo directamente con sólo acmbiar el tipo de campo de la tabla.
  #8 (permalink)  
Antiguo 02/03/2006, 09:27
Avatar de jpogsistem  
Fecha de Ingreso: diciembre-2001
Mensajes: 2.405
Antigüedad: 22 años, 4 meses
Puntos: 4
Entonces como ha de hacerse un cambio de estós? Que se hace generalemente?

Alguna especie de Update complejo o algo vía php?

Gracias.
__________________
EL LIMITE ES EL UNIVERSO
  #9 (permalink)  
Antiguo 02/03/2006, 14:21
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 5 meses
Puntos: 11
Hagamos el update y luego el alter:

Código:
//hacemos primero un select para ver si el resultado es el que esperamos
select concat(substring(campo,7,2),"-",substring(campo,4,2),substring(campo,1,2)) as resultado from tabla

//concateno el año, con el mes y el dia, en ese orden
update tabla set campo=concat(substring(campo,7,2),"-",substring(campo,4,2),substring(campo,1,2));

//cambio el tipo de dato del campo a date
alter table tabla change campo campo date;

Última edición por claudiovega; 02/03/2006 a las 14:42
  #10 (permalink)  
Antiguo 07/03/2006, 12:28
 
Fecha de Ingreso: noviembre-2004
Mensajes: 2
Antigüedad: 19 años, 4 meses
Puntos: 0
Excelente

Simplemente Excelente
estoy iniciando en php con mysql pero con sus tips doy pasos gigantescos
gracias
  #11 (permalink)  
Antiguo 05/08/2006, 17:56
Avatar de jpogsistem  
Fecha de Ingreso: diciembre-2001
Mensajes: 2.405
Antigüedad: 22 años, 4 meses
Puntos: 4
Bien, Por fin me animé a hacerlo y les comparto como lo hice :

Tenía todas las fechas guardadas como texto en de las siguiente forma :

07/28/2006

Ajusté la recomendación de Claudiovega y quedó así :

1. Compruebo que quede Bien con el select :

select concat(substring(creation_date,7,4),"-",substring(creation_date,1,2),"-",substring(creation_date,4,2)) as resultado from tabla

Y son como el formato de fecha de Mysql : 2006-07-28


2. Actualizo los datos en la tabla :

update tabla set creation_date=concat(substring(creation_date,7,4), "-",substring(creation_date,1,2),"-",substring(creation_date,4,2))

3. Luego vuelvo el campo de tipo fecha (DATE)

ALTER TABLE `tabla` CHANGE `creation_date` `creation_date` DATE


Saludos a Todos.
__________________
EL LIMITE ES EL UNIVERSO
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 08:04.