Cita:
Empezado por vroa74
Hola:
sigo con el pequeño problema de no poder filtrar buen la base de datos, debe ser por algun detalle. el problema es cuando seleciono un rago de fechas es codigo que uso es:
Código Delphi [-] MyQuery1.SQL.Add('(Date_Format(servicios.f_ini,''%d/%m/%Y'') >= '+ QuotedStr(DateToStr(JvDateTimePicker1.Date)) +') AND ( Date_Format(servicios.f_ini,''%d/%m/%Y'') <='+ QuotedStr(DateToStr(JvDateTimePicker2.Date)) +')');
mas sin embargo me sigue haciendo cosas que no le veop sentido.
por ejemplo
si seleciono un rango de fecha 01/02/2008 al 04/06/2008 me da solo 3 registros y en la base de datos de prueba en ese rango de fecha hay 21 registros.
los registros que me da son lso que inicia con 1 y 2 de cada mes, tego registro con dias 15 19 20 22 30 de cada mes mas eso nos lo muestra..
es teoria deberia estar mostrando todos alguien me podria ayudar para saber en que estoy fallando.
|
mira compañero,
si quieres seleccionar en un rango de fechas utiliza en BETWEEN
algo asi:
Código Delphi
[-]var
FIni, FFin :String;
A,M,D : Word;
DecodeDate(JvDateTimePicker1.Date,A,M,D);
FIni := IntToStr(A) + '-' + IntToStr(M)+ '-' + IntToStr(D);
DecodeDate(JvDateTimePicker2.Date,A,M,D);
FFin := IntToStr(A) + '-' + IntToStr(M)+ '-' + IntToStr(D);
MyQuery1.SQL.Add('WHERE servicios.f_ini BETWEEN '+QuotedStr(Fini) + ' AND ' + QuotedStr(FFin));
asi de sencillo!!! :P
ahi platicas si funcionó!!