Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Fecha en where (https://www.clubdelphi.com/foros/showthread.php?t=10540)

StartKill 21-05-2004 18:51:31

Fecha en where
 
Hola club

Trabajo con delphi 7.0 y interbase 6.0.1 y utilizo los componetes IBX.

Tengo problemas al hace un select a un conjunto de registros que estan filtrados por un where donde incluye fechas.

Resulta que desde mi programa tengo in IBQuery conectado a una tabla y un where que utiliza parametros para el filtro respectivo

select * from tabla_fecha where ffec >= :fini and ffec <= :ffin

y hay veces que no lo ejecuta existiendo datos que cumplen el where.

Utilizando el EMS-Interbase note que la fechas que maneja el interbase utilizan un formato mm/dd/aaaa y el formato de ingreso del programa es dd/mm/aaaa, no deseo cambiar el formato de ingreso ya que el formato estandar que se utiliza aca el dd/mm/aaaa... si alguien me diera alguna idea para esto sera bienvenida.

Your friend,

StartKill
Lima-Perú

Firibiri 21-05-2004 18:58:03

Puedes probar con formatdatetime
select * from tabla_fecha where formatdatetime('mm/dd/yyyy',ffec)>= :formatdatetime('mm/dd/yyyy',fini)
and formatdatetime('mm/dd/yyyy',ffec) <= :(formatdatetime('mm/dd/yyyy',ffin)

lo que no se si tendras que ponerle un quotedstr(las comillas) en los formatdatetime

delphi.com.ar 21-05-2004 19:08:34

Supongo que Interbase soporta Bind Params, de ser así no te tendrías que preocupar por que el formato de la fecha en el servidor y el cliente sean compatibles, siempre y cuando utilices parámetros para pasar los valores.

Saludos!

guillotmarc 21-05-2004 19:20:16

Hola.

Deberias buscar otra posible razón, puesto que el componente IBOQuery ya se ocupará del formato de las fechas.

Saludos.

StartKill 21-05-2004 20:25:59

Holas,

:D los peores errores se cometen por exceso de confianza, por subestimar a nuestro menor enemigo(nosostros mismos)...

Firibiri, delphi.com.ar, delphi.com.ar, guillotmarc, les estoy muy agradecido...
revise mi select y me habia equivocado.

antes
select * from tabla_fecha where ffec >= :fini and ffec <= :ffin

despues
select * from tabla_fecha where :fini >= ffec and :ffin <= ffec

Your Friend, :cool:

StartKill
Lima-Perú

guillotmarc 21-05-2004 20:51:36

Hola.

Parece más lógica la primera consulta que la segunda. Una sintaxis alternativa, que hace lo mismo (que la 1ª consulta) pero que me parece más comprensible es :

select * from tabla_fecha where ffec between :fini and :ffin

Saludos.


La franja horaria es GMT +2. Ahora son las 12:45:00.

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