Para el tema horas puedes hacer lo siguiente:
Código Delphi
[-]
procedure Filtra(Desde, Hasta: TDateTime);
begin
Desde := RecodeTime(Desde, 0, 0, 0, 0);
Hasta := RecodeTime(Hasta, 23, 59, 59, 999);
ADOQuery1.SQL.Add('where FechaCre where Fecha between :fecha1 and :fecha2)');
ADOQuery1.Parameters.ParamByName('fecha1').Value := Desde;
ADOQuery1.Parameters.ParamByName('fecha2').Value := Hasta;
[...]