Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Como comparar un rango de fechas (https://www.clubdelphi.com/foros/showthread.php?t=14214)

Ricsato 13-09-2004 22:12:24

Como comparar un rango de fechas
 
Hola a todos, tengo una rutina donde leo desde una forma dos DateTimePicker, de donde obtengo un rango de fechas para realizar una consulta, una vez dados estos rangos ejecuto un Query, con el siguiente codigo:

Add('where ' + char(39) + DateToStr(DTPInicio.Date)+ char(39) + ' >= FechaSolicitud and ' + char(39) + DateToStr(DTPFin.Date)+ char(39) + ' <= fechaSolicitud');

Donde DTPInicio.Date y DTPFin.Date, son mis rangos de fechas y fechaSolicitud son las fechas que tengo almacenadas en mi tabla que quiero comparar.

fechaSolicitud es de tipo Date, me marca un error de tipos distintos y si le quito el DateToStr, tambien me lo marca.

Alguien me podria sugerir que hacer?, o si eiste otra mejor forma suando SQL?.
de antemano Gracias!!

Ricardo

marcoszorrilla 13-09-2004 22:20:30

Prueba con:

QuotedStr(FormatDateTime('mm/dd/yyyy',DTPFin.Date));

Un Saludo.

delphi.com.ar 13-09-2004 22:21:23

Lo mas recomendable, para no tener problema de conversión de tipos de datos, es utilizar parámetros:

Código Delphi [-]
...
Add('where :pInicio >= FechaSolicitud and :pFin <= fechaSolicitud');
ParamByName('pInicio').AsDateTime := DTPInicio.Date;
ParamByName('pFin').AsDateTime := DTPFin.Date;
...

Saludos!

Ricsato 14-09-2004 01:10:16

Gracias!!
 
Hola, gracias amigos por su ayuda, aunque los ejemplos que me dieron por alguna extraña razon, no me regresaban informacion e hice lo siguiente:

Add('Where FechaSolicitud Between ');
Add(QuotedStr(FormatDateTime('mm/dd/yyyy',DTPInicio.Date)));
Add(' And ' + QuotedStr(FormatDateTime('mm/dd/yyyy',DTPFin.Date)));

y con ello, se soluciono mi problema, pero aun asi, muchisimas gracias!!

Un Saludo desde Mexicali, B.C., Mexico.

marcoszorrilla 14-09-2004 16:41:25

No era un ejemplo sino un fragmento, al ensamblarlo en el lugar oportuno produce el resultado esperado como habrás visto.

Un Saludo.


La franja horaria es GMT +2. Ahora son las 17:02:32.

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