Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Problemas con ORDER BY

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Problemas con ORDER BY Responder citando

Hola Amigos del foro!! espero que estes comenzando el año con pie derecho.

Actualmente tengo un problema con un query, en realidad es el ordre by.
Es lo siguiente:
En una base dedatos se graban registros de un sistema de tiempo real, Codigo, fecha, hora, estado. En la tabla se graban en el orden que suceden los eventos.
Esta informacion quiero presentarla en un DBGrid pero de tal forma que el ultimo registro insertado en la tabla es el primero que se visualiza en el DBGrid, por esto es necesario usar un ORDER BY CAMPO DESC.
El problema radica que si tengo la siguiente informaicon en la tabla:
CODIGO FECHA HORA ESTADO
123 20/01/2003 4:30:26 0
0 20/01/2003 4:30:47 1
0 20/01/2003 4:30:47 0
63 20/01/2003 4:30:47 1
0 20/01/2003 4:30:47 1
0 20/01/2003 4:30:48 0
63 20/01/2003 4:30:48 0
123 20/01/2003 4:30:48 1


cuando hago el siguiente query

Select Codigo, fecha, hora, estado from tabla
where fecha = '01/20/2003'
order by hora desc
obtengo el siguiente resultado

CODIGO FECHA HORA ESTADO
0 20/01/2003 4:30:48 0
63 20/01/2003 4:30:48 0
123 20/01/2003 4:30:48 1
0 20/01/2003 4:30:47 1
0 20/01/2003 4:30:47 0
63 20/01/2003 4:30:47 1
0 20/01/2003 4:30:47 1
123 20/01/2003 4:30:26 0

Creo que no toma en cuenta los milisegundos, los cuales si los estoy utilizando en el momento de grabar el dato, pero no se como hacer para que los tenga en cuenta en el query.

Alguien tien alguna idea de como debo hacerle para obtener el resultado adecuado.
Muchas gracias.

Andres
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

En vez de guardar en la base de datos la hora exacta en formato "dd/mm/yy hh:mm:ss", podrias guardarlo en un formato numerico que te da mayor precision y facilidad a la hora de ordenar y buscar, por ejemplo, el que te da la funcion "ftime".
Volver arriba
Mensaje    Asunto: Responder citando

separa el cambo fecha en dos campos y ordenalos

fecha y hora
_________________
Ing. Gabriel Góngora Navarrete
TouchSoftwares Inc

http://www.touchsoftwares.com
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

Hola.
No se si tienes un Campo Integer que sea un índice (el tipico campo ID) que aumenta en cada registro ¿Por qué no lo usas? Siempre será más facil usarlo para ordenar.
Salu2
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Hola a todos, Muchas gracias por sus respuestas.

Finalmente opté por el campo consecutivo, porque definitivamente los milisegundos no se tienen en cuenta en el momento de hacer un query.
Otra solucion (No la hice) podia ser grabar los milisegundos en un campo entero, porque de todas maneras al hacer un decodetime al campo, presenta que si estan los milisegundos correctamente.

Muchas gracias a todos, y por ahora CASO CERRADO.

felices dias

Andres
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.