Foros del Web » Programando para Internet » PHP »

Problema con ordenar fechas

Estas en el tema de Problema con ordenar fechas en el foro de PHP en Foros del Web. Tengo un problema al momento de mostrar las fechas, ya que la ordenación de las mismas, sebe ser de forma desc. para hacer la consulta ...
  #1 (permalink)  
Antiguo 23/11/2009, 11:50
 
Fecha de Ingreso: septiembre-2009
Ubicación: México
Mensajes: 102
Antigüedad: 14 años, 7 meses
Puntos: 4
Pregunta Problema con ordenar fechas

Tengo un problema al momento de mostrar las fechas, ya que la ordenación de las mismas, sebe ser de forma desc.

para hacer la consulta utilizo la siguiente sentencia SQL
Código PHP:
select from tabla order by finicio 
Resultado
Nombre | FINICIO
Curso 1 | 01/11/2009
Curso 2 | 01/11/2010
Curso 3 | 10/11/2009
Curso 4 | 15/12/2009

Cuando el resultado que necesito tendria que ser:

Resultado Esperado
Nombre | FINICIO
Curso 1 | 01/11/2009
Curso 3 | 10/11/2009
Curso 4 | 15/12/2009
Curso 2 | 01/11/2010

Alguien que sepa como solucionar o que ya le haya pasado y haya solucionado este error???
  #2 (permalink)  
Antiguo 23/11/2009, 11:56
Avatar de Fairy_Boy  
Fecha de Ingreso: octubre-2009
Ubicación: Kokiri Forest
Mensajes: 235
Antigüedad: 14 años, 6 meses
Puntos: 5
Respuesta: Problema con ordenar fechas

select * from tabla order by finicio DESC
:s
  #3 (permalink)  
Antiguo 23/11/2009, 12:04
Avatar de dcreate  
Fecha de Ingreso: octubre-2009
Ubicación: Veracruz
Mensajes: 536
Antigüedad: 14 años, 6 meses
Puntos: 22
Respuesta: Problema con ordenar fechas

q no es select * from tabla order by finicio ASC
  #4 (permalink)  
Antiguo 23/11/2009, 12:07
 
Fecha de Ingreso: septiembre-2009
Ubicación: México
Mensajes: 102
Antigüedad: 14 años, 7 meses
Puntos: 4
Exclamación Respuesta: Problema con ordenar fechas

Cita:
Iniciado por Fairy_Boy Ver Mensaje
select * from tabla order by finicio DESC
:s
NO funciona, ya que existen fechas aun mayores y las ordena por dia, mes y año y por consiguiente, no quedan ordenadas de manera adecuada como deberian de quedar

Alguna otra opcion para resolver estooo
  #5 (permalink)  
Antiguo 23/11/2009, 12:15
 
Fecha de Ingreso: junio-2008
Mensajes: 87
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problema con ordenar fechas

que tipo de campo usuas para guaradar la fecha? date? date time? string

por lo que veo en el resultado lo esta ordenando correctamete pero como si fuera un string... no como si fuera un campo date....

ademas si el sql que estas usando es ese que pusistes calculo que si o si lo estas gaurdando en un string y no en un campo date pro que si no tendrias que usar date_format para sacar la fecha en formato dd/mm/aaaa por que por defecto los campos date de mysql salen como aaaa-mm-dd
  #6 (permalink)  
Antiguo 23/11/2009, 12:16
 
Fecha de Ingreso: junio-2008
Mensajes: 87
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problema con ordenar fechas

que tipo de campo usuas para guaradar la fecha? date? date time? string

por lo que veo en el resultado lo esta ordenando correctamete pero como si fuera un string... no como si fuera un campo date....

ademas si el sql que estas usando es ese que pusistes calculo que si o si lo estas gaurdando en un string y no en un campo date pro que si no tendrias que usar date_format para sacar la fecha en formato dd/mm/aaaa por que por defecto los campos date de mysql salen como aaaa-mm-dd
  #7 (permalink)  
Antiguo 23/11/2009, 12:16
Avatar de dcreate  
Fecha de Ingreso: octubre-2009
Ubicación: Veracruz
Mensajes: 536
Antigüedad: 14 años, 6 meses
Puntos: 22
Respuesta: Problema con ordenar fechas

una pregunta? en tu base de datos el campo finicio es de tipo date y q formato tiene?
  #8 (permalink)  
Antiguo 23/11/2009, 12:18
 
Fecha de Ingreso: septiembre-2009
Mensajes: 81
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: Problema con ordenar fechas

pfff yo tuve el mismo problema hace un tiempo. Basicamente el problema esk tal como almacenas las fechas da= si pones ASC o DESC pk siempre empezara a ordenarlo por el dia, despues el mes y finalmente el año, cuando deberia de ser al reves.
Yo lo k hize fue cambiar la forma en k se almacenan las fechas y almacenarlo por año/mes/dia, asi te lo ordenaria bien.
Si no puedes cambiar el modo en que se almacenan tendras k buscar una manera de "dalre la vuelta" a la fecha antes de ordenarla....

Edito: e dado por hecho k lo almacenas en un campo de tipo texto. Si es de tipo fecha entonces no deberias tener problema.
  #9 (permalink)  
Antiguo 23/11/2009, 12:23
Avatar de Fairy_Boy  
Fecha de Ingreso: octubre-2009
Ubicación: Kokiri Forest
Mensajes: 235
Antigüedad: 14 años, 6 meses
Puntos: 5
Respuesta: Problema con ordenar fechas

Tiene razon catalon, deberias poner como tipo de dato DATE.
y hacer la consulta:

SELECT * FROM tabla ORDER BY finicio ASC

para obtener:

Curso 1 2009-11-01
Curso 3 2009-11-10
Curso 4 2009-11-15
Curso 2 2010-11-01

=)
  #10 (permalink)  
Antiguo 23/11/2009, 12:23
 
Fecha de Ingreso: junio-2008
Mensajes: 87
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problema con ordenar fechas

para invertir la fecha es facil
Código PHP:
    $date "13/12/2009"
    
$dia substr($date,0,2);
    
$mes substr($date,3,2);
    
$date substr_replace($date,$mes,0,2);
    
$date substr_replace($date,$dia,3,2);*/
    
    
//obtenemos la fecha para la base de datos
    
$unix_time strtotime($date);
    
//esto no es necesario es solo un tu caso... las fechas obtenidas por los dos metodos deverian ser identicas.. aunque esto te ayuda en caso de que tengas tambien la hora en el string cunado arme el script tenia la hora yo
    
$fdate date("Y-m-d",$unix_time);
    
$fhora date("H:i:s",$unix_time); 
igual esto no se hace.... deberias cambiar la forma en que se guarda no corregir todo el array de resultaados y despues ordenarlo no tiene sentido
sino proba con la funcion date_format de MySQL.
  #11 (permalink)  
Antiguo 23/11/2009, 13:45
 
Fecha de Ingreso: septiembre-2009
Ubicación: México
Mensajes: 102
Antigüedad: 14 años, 7 meses
Puntos: 4
Respuesta: Problema con ordenar fechas

asi es gracias a todos, cambie el formato en la base de datos, porque lo tenia como un varchar, lo cambie a date y modifique el codigo un poco y listoo ...

gracias a tdoso por su 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 19:44.