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

[SOLUCIONADO] Ordenar campo dia mes año

Estas en el tema de Ordenar campo dia mes año en el foro de Mysql en Foros del Web. Buenas Tengo una tabla que guarda entre otros campos un campo día, otro mes y otro año. Mi sorpresa es que en los datos se ...
  #1 (permalink)  
Antiguo 31/05/2013, 04:19
 
Fecha de Ingreso: abril-2011
Mensajes: 12
Antigüedad: 13 años
Puntos: 0
Ordenar campo dia mes año

Buenas

Tengo una tabla que guarda entre otros campos un campo día, otro mes y otro año.

Mi sorpresa es que en los datos se guardan los meses como varchar: Enero, Febrero....

¿Hay alguna manera en mysql de obtener los datos ordenados cornológicamente? Especialmente el problema es el campo meses, evidentemente el order by no funciona.

Muchas gracias
  #2 (permalink)  
Antiguo 31/05/2013, 04:21
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Ordenar campo dia mes año

Depende de qué DBMS estés usando... Existen funciones en algunos de ellos que pueden ayudar.

¿Con qué trabajas?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 31/05/2013, 04:28
 
Fecha de Ingreso: abril-2011
Mensajes: 12
Antigüedad: 13 años
Puntos: 0
Respuesta: Ordenar campo dia mes año

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Depende de qué DBMS estés usando... Existen funciones en algunos de ellos que pueden ayudar.

¿Con qué trabajas?
Uso php+ mysql, vamos que quiero que me lo devuelva oprdenado para mostrarlo sin tener que ordenar yo "a mano" con php por temas de eficiencia.
  #4 (permalink)  
Antiguo 31/05/2013, 06:19
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Ordenar campo dia mes año

Antes que nada yo modificaria el diseño de la tabla y guardaria en un solo campo la fecha con formato DATE....

No se si habra funciones que calculen el numero del mes a partir del literal en castellano ... pero un condicional anidado lo soluciona

if(mes="Enero",1,if(mes="Febrero",2,if(......))) as NumMes

y ya podras ordenar....

(patatera la solución??)

Recuerda ordenar en este orden

Año,mes,dia
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #5 (permalink)  
Antiguo 31/05/2013, 06:43
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Ordenar campo dia mes año

Yo usaría FIND_IN_SET(str,strlist) aplicado al campo:

Código MySQL:
Ver original
  1. ...
  2. ORDER BY FIND_IN_SET(mes,'Enero, Febrero, Marzo, Abril, Mayo, Junio, Julio, Agosto, Septiembre, Octubre, Noviembre, Diciembre')

Por supuesto que para que funcione es necesario que todos los valores de meses estén bien escritos, o de lo contrario devolverá NULL y ordenará esos valores al principio.
De todos modos, como remarca correctamente Quimfv, sería mejor depurar esa base y poner las fechas como deben estar... que no es en VARCHAR.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 31/05/2013, 07:16
 
Fecha de Ingreso: abril-2011
Mensajes: 12
Antigüedad: 13 años
Puntos: 0
Respuesta: Ordenar campo dia mes año

Muchas gracias a los dos ,

Etiquetas: año, campo, dia, sql, tabla
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 13:42.