Club Delphi  
    FTP   CCD     Enlaces   Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Desplegado
  #1  
Antiguo 13-06-2008
Avatar de Alejandrina
Alejandrina Alejandrina is offline
Miembro
 
Registrado: mar 2007
Ubicación: Medellin
Posts: 46
Alejandrina Va por buen camino
Question Filtrar consulta por fecha y hora

Hola a todos,
Resulta que tengo un campo llamado fecha tipo data en una tabla en interbase, y necesito hacer una consulta que me permita seleccionar los
registros que estan en determinado rango de fechas pero que tambien me incluya la hora, es decir que yo pueda hacer algo como esto:
where e.fecha between '06/03/2008 06:00:00 a.m.' and '06/03/2008 02:00:00 p.m.'
Es posible? como podria hacerlo?

Gracias por la ayuda que me puedan brindar.
__________________
Alejandrina
Responder Con Cita
  #2  
Antiguo 13-06-2008
Avatar de santiago14
santiago14 santiago14 is offline
Miembro
 
Registrado: sep 2003
Ubicación: Cerrillos, Salta, Argentina
Posts: 446
santiago14 Va por buen camino
filtrar por fechas y horas

Una buena respuesta a esto podría ser:

Código SQL [-]
Select...
From ...
Where fecha BETWEEN :fecha1 AND :fecha2

Antes de hacer Open de la consulta en cuestión tendrías que poner unos ParamByName

Código Delphi [-]
      
...
paramByName('fecha1').asDateTime:=fecha1;
paramByName('fecha2').asDateTime:=fecha2; 
try
  open;
except
  raise;
end;

En la BD tu campo "fecha" debería declararse de tipo timestamp para que pueda soportar hora y fecha.

fecha1 y fecha2 son variables tipo dateTime donde pones el tiempo inicial y final para el filtro.
Espero que te ayude.
__________________
Uno es responsable de lo que hace y de lo que omite hacer.
Responder Con Cita
  #3  
Antiguo 13-06-2008
Avatar de Alejandrina
Alejandrina Alejandrina is offline
Miembro
 
Registrado: mar 2007
Ubicación: Medellin
Posts: 46
Alejandrina Va por buen camino
Exclamation filtrar por fechas y horas

Gracias...
Bueno te cuento que justamente asi estoy realizando la consulta coloque una fecha exacta como ejemplo de como se estan almacenando los datos de la fecha en la tabla. La cosa es que cuando realizo la consulta de esta forma:

Código SQL [-]select e.fecha,e.usuario,e.documento,o.maquina,e.referencia,o.descripcion,e.observaciones2
from estadisticas e
inner join ordendescripcion o on o.orden=e.documento
where e.fecha between '06/03/2008' and '06/04/2008'
order by e.fecha



la consulta me arroja resultados, pero cuando lo hago de esta otra forma la cual seria la ideal para mi:

Código SQL [-]select e.fecha,e.usuario,e.documento,o.maquina,e.referencia,o.descripcion,e.observaciones2
from estadisticas e
inner join ordendescripcion o on o.orden=e.documento
where e.fecha between '06/03/2008 06:00:00 a.m.' and '06/03/2008 02:00:00 p.m.'order by e.fecha



la consulta no me arroja el siguiente error
"Invalid modify request
conversion error from string "06/03/2008 02:00:00 p.m.""
__________________
Alejandrina
Responder Con Cita
  #4  
Antiguo 13-06-2008
Avatar de santiago14
santiago14 santiago14 is offline
Miembro
 
Registrado: sep 2003
Ubicación: Cerrillos, Salta, Argentina
Posts: 446
santiago14 Va por buen camino
Wink

Código SQL [-]
select e.fecha,e.usuario,e.documento,o.maquina,e.referencia,o.descripcion,e.observaciones2
from estadisticas e inner join ordendescripcion o on o.orden=e.documento
where e.fecha between '06/03/2008' and '06/04/2008'
order by e.fecha

la consulta me arroja resultados, pero cuando lo hago de esta otra forma la cual seria la ideal para mi:

Código SQL [-]
select e.fecha,e.usuario,e.documento,o.maquina,e.referencia,o.descripcion,e.observaciones2
from estadisticas e inner join ordendescripcion o on o.orden=e.documento
where e.fecha between '06/03/2008 06:00:00 a.m.' and '06/03/2008 02:00:00 p.m.'order by e.fecha

la consulta no me arroja el siguiente error

"Invalid modify request
conversion error from string "06/03/2008 02:00:00 p.m.""[/quote]



Bueno, veamos:
Yo pondría en un formulario dos componentes DateTimePicker, uno con la fecha y otro con la hora, luego como la fecha es la parte entera y la hora es la parte decimal de un double, los sumamos.

De ahi lo guardamos en una variable tipo TDateTime y la pasamos a la consulta de la manera que indico la respuesta anterior. Con eso, segurament no te saldrá el error de conversión pues delphi y/o interbase se encargan de la transformación.
Yo lo he hecho muchas veces como lo comento y nunca me dió un error de conversión. Si aparecía cuando le pasaba los valores directamente.
Puedo decir al respecto que la fecha en interbase tiene la forma "mm/dd/aaaa" y la hora "hh:mm:ss" pero creo que se complica un poco cuando es am o pm.

El error quiere decir que interbase no puede transformar el string para operar. Lo mejor sería no pasarle las cosas por valor sino en variables para que las funciones internas se encarguen de las transformaciones.

Igual para que pueda ver con mas claridad lo que hiciste y poder probarlo si deseas podrías publicar la parte de código que no funciona, lo pruebo y veo que si puedo solucionarlo.

Saludos.
__________________
Uno es responsable de lo que hace y de lo que omite hacer.
Responder Con Cita
  #5  
Antiguo 16-06-2008
Avatar de kuan-yiu
[kuan-yiu] kuan-yiu is offline
Registrado
 
Registrado: jun 2006
Ubicación: Oleiros. A Coruña.
Posts: 866
kuan-yiu Va por buen camino
El error que te da es por el formato de la fecha y hora que le pasas, es mejor definir el entorno de fechas como variables y rellenarlas con un componente que no te de problemas.
El componente DateTimePicker tiene una propiedad llamada "DateTime" que devuelve la fecha y hora seleccionada en un formato válido.
Responder Con Cita
Respuesta


Herramientas
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
obtener solo la fecha en formato fecha y sin hora BlueSteel SQL 14 09-05-2008 16:42:19
Consulta MySQL con fecha y hora Adrian Murua SQL 10 19-11-2007 05:32:08
Extraccion fecha de un campo fecha y hora matti Firebird e Interbase 3 26-04-2007 19:48:11
Juntar fecha y hora para consulta SQL Iuconlas SQL 6 21-02-2007 12:16:40
Error en consulta con fecha y hora. Tecnic2 SQL 10 01-10-2005 01:35:25


La franja horaria es GMT +2. Ahora son las 18:02:19.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi