Foros del Web » Programando para Internet » PHP »

Ordenar por dia/mes en MySQL

Estas en el tema de Ordenar por dia/mes en MySQL en el foro de PHP en Foros del Web. Hola a todos, Estoy intentando ordenar un registro de fecha con el tipo (dd/mm). He esado buscado en el foro información sobre como ordenarlo pero ...
  #1 (permalink)  
Antiguo 13/12/2007, 16:44
 
Fecha de Ingreso: abril-2003
Mensajes: 363
Antigüedad: 21 años
Puntos: 3
Ordenar por dia/mes en MySQL

Hola a todos,

Estoy intentando ordenar un registro de fecha con el tipo (dd/mm).
He esado buscado en el foro información sobre como ordenarlo pero no he encontrado nada concreto, lo único que he encontrado el ha sido el DATE_FORMAT, pero al programarlo no he conseguido nada, lo he puesto de la siguiente forma:
Código:
SELECT * FROM prueba ORDER BY DATE_FORMAT(fecha,'%d/%m')
La duda la tengo en como poner el formato dentro del DATE_FORMAT y si está bien usado así.
¿Alguno me puede echar una mano?

Muchas Gracias
  #2 (permalink)  
Antiguo 13/12/2007, 16:51
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Re: Ordenar por dia/mes en MySQL

no es necesario rdenar dia mes, incluyendo el año igual ordenara si la fecha esta bien creada al formato año-mes-dia, es solo cosa de poner

ORDER BY fecha ASC
o DESC puedes poner un LIMIT 10 si quieres solo las ultimas 10

espero sea eso
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #3 (permalink)  
Antiguo 14/12/2007, 00:34
 
Fecha de Ingreso: abril-2003
Mensajes: 363
Antigüedad: 21 años
Puntos: 3
Re: Ordenar por dia/mes en MySQL

Gracias por tu respuesta kaninox, el problema de lo que me comentas es que en el campo fecha de la bbdd está guardado de la forma dd/mm sin el año ni nada primero el dia y después el mes, por eso estoy buscando alguna forma de convertir esa fecha a un formato válido para que me la ordene la base de datos.

¿Alguna ideas más?
Gracias
  #4 (permalink)  
Antiguo 14/12/2007, 09:54
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Re: Ordenar por dia/mes en MySQL

por que solo se guarda el dia y el mes?
como haces diferencias del

30 de octubre de este año con el del año pasado el del siguiente y asi?
yo creo que deberias cambiar tu campo y ponerlo como date
e ingresar el año...
te traera muchos problemas para consultas y orden...
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #5 (permalink)  
Antiguo 15/12/2007, 05:18
 
Fecha de Ingreso: abril-2003
Mensajes: 363
Antigüedad: 21 años
Puntos: 3
Re: Ordenar por dia/mes en MySQL

no se hace diferencia entre años porque no es necesario, para lo que necesito la base de datos solo necesito el dia y mes, ya que los resultados son de este año, el año que viene se reiniciará la base de datos con nueva información.

Se os ocurre alguna solución?

Gracias
  #6 (permalink)  
Antiguo 15/12/2007, 10:57
 
Fecha de Ingreso: mayo-2006
Mensajes: 288
Antigüedad: 17 años, 10 meses
Puntos: 4
Re: Ordenar por dia/mes en MySQL

umm mejor en ves de poner esa fila asi mejor pon una casilla con la variable Date(date();) asi es mejor pues no tienes este tipo de inconvenientes ;)
  #7 (permalink)  
Antiguo 15/12/2007, 11:46
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Re: Ordenar por dia/mes en MySQL

haber lo veo complicado, no creo puedas hacer bien el ordanamiento si no ingresas una fecha tipo date como deberia ser, mira si solo quieres mostrar el dia y mes, es independiente que guardes el año tambien te recomiendo.....

en tu form tienes dos campos dia - mes para dia por ejemplo enviamos 03 y mes 11 ok. hasta aki como lo tienes supongo....
luego tu juntas estas variables tipo ....
Código PHP:
$fecha "$_POST[dia]/$_POST[mes]"
/*cierto y guardas
INSERT INTO tabla ....fecha Values '$fecha') por decir */ 
bueno yo te recomiendo pasar el campo varchar que tienes a date.. tipo año-mes-dia
entonces harias algo como esto al guardar...

Código PHP:
$anyo date("Y");
$fecha "$anyo-$_POST[mes]-$_POST[dia]"
y guardas $fecha en el campo date ok...

te quedaria guardado el año mes y dia, obiamente el formato es solo para ordenar tu solo quieres el dia y el año...
ahora teniendo este formato en base de datos es imple ordenar como te lo propuse arriba....

y si solo quieres mostrar el dia y año de cada fecha haces

Código PHP:
$sql mysql_query("SELECT * FROM tabla ORDER BY fecha DESC"); //descendente
//ASC es ascendente, te veras como ordenas...
//y luego si quieres mostrar dia y mes ocupamos substr por ejemplo para cortar
while ($datos mysql_fetch_array($sql))
{
$dia substr($datos[fecha], 82)
$mes substr($datos[fecha], 52)

echo 
"$dia/$mes";


espero se entienda seria una forma correcta de trabajar las cosas
espero te sirva saludos
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #8 (permalink)  
Antiguo 15/07/2008, 13:16
 
Fecha de Ingreso: julio-2008
Mensajes: 2
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Ordenar por dia/mes en MySQL

Buenas,es la primera vez que posteo,pero la verdad es que siempre leo el foro y me ha sacado ya de muchos problemas.

Posteo aquí para no abrir otro tema similar,ya que mi problema es parecido.

Busqué información,y mediante el DATE_FORMAT() imprimo los resultados como dd-mm-aaaa de la base de datos almacenados en el formato aaaa-mm-dd en la misma.

El problema es que no consigo ordenar una consulta mediante la fecha ya que solo las ordena por dia,al llegar al primer guión para y por tanto se mezcla el año 2007 con 2008.

¿Como puedo solucionar esto?

Gracias por la ayuda
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 14:02.