FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Buscar en una tabla por fecha
Buenas. Tengo una tabla en FB con la siguiente estructura:
que tiene, por ejemplo, estos registros: Como veis son nombres de copias de seguridad y lo que estoy buscando es que me saque todas las que se hayan hecho en una día concreto. Para ello uso este query: Código:
Auxiliar->Close(); Auxiliar->SQL->Text = "SELECT Fichero FROM Ficheros WHERE CodPrv = :CodPrv AND Tipo = '2' AND Creado BETWEEN :Inicio AND :Final"; Auxiliar->ParamByName("Inicio")->AsDateTime = FileDateToDateTime(FileAge(cAux)).CurrentDate(); Auxiliar->ParamByName("Final")->AsDateTime = FileDateToDateTime(FileAge(cAux)); Auxiliar->Open(); |
#2
|
||||
|
||||
Tienes que ajustar el margen de fechas: desde el primer minuto del día hasta el último.
Construye el rango a partir de la fecha que deseas y modifica la parte del tiempo según necesites, lo normal es truncar la parte decimal de ese tipo TDateTime y así tienes el primer segundo del día y luego añadirle 23h, 59 minutos y 59 segundos para tener el último segundo del día. EncodeDateTime, EncodeTime, EndOfADay... tienes varias funciones para hacerlo. |
#3
|
||||
|
||||
Hola.
Prueba de este modo: (No incluí a CodPrv ni a Tipo por que no se hallan en la definición de la tabla) Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#4
|
||||
|
||||
Si mostraras los datos seria mas evidente el problema, aunque en mi opinion la descripción de lo que quiere y el código que muestras no coincide.
__________________
El malabarista. |
#5
|
||||
|
||||
Gracias por la ayuda.
Cita:
Cita:
No entiendo lo que quieres decir. He mostrado los datos que contiene la tabla; los del query no podía porque no devolvía ningún resultado. Creí que loo había dicho. |
#6
|
||||
|
||||
En Delphi están en SysUtils y DateUtils.
|
#7
|
||||
|
||||
Cita:
P.D: Ten en cuenta que el uso de CAST anula los indices* (Nota: eso es lo que pasa normalmente pero habría que chequear con el query planer!) y que yo sepa no es posible crear indices parciales/de funciones en firebird. Por lo que en ese caso haces DOBLE cast para pasar de DATE a DATETIME or quitas/agregas/redondeas las horas del date time.
__________________
El malabarista. |
#8
|
||||
|
||||
Cita:
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Ordenar por la última fecha en varios campos de fecha de una tabla | Luis M. | Firebird e Interbase | 1 | 22-03-2016 15:31:17 |
recorrer una tabla para buscar alguna fecha especifica | Rofocale | Varios | 7 | 04-10-2011 17:33:48 |
buscar entre fecha y horas | anubis | SQL | 2 | 01-01-2011 11:09:57 |
Buscar fecha en una tabla access | dmassive | Tablas planas | 5 | 24-01-2008 19:24:07 |
Buscar por fecha.....ayuda!!! | ronimaxh | Firebird e Interbase | 6 | 18-08-2004 14:38:29 |
|