Filtro por data

Delphi

22/11/2006

Eu tenho o seguinte comando:
dbcompras.sqlTBOC.SQL.Clear;
dbcompras.sqlTBOC.SQL.Add(´select * from tboc where chegou is null and cast(data as date) between :dat1 and :dat2´);
dbcompras.sqlTBOC.ParamByName(´dat1´).AsDateTime:=datainicial.DateTime-1;
dbcompras.sqlTBOC.ParamByName(´dat2´).AsDateTime:=datafinal.DateTime+1;
dbcompras.sqlTBOC.Open;
O que está acontecendo que ele não pega a data certa, ele só pega a data posterior (inicial) e a data anterior (data final), ou seja, se eu quiser filtrar tudo que entrou por exemplo no dia 07/11/2006 eu tenho que colocar a data inicial como 06/11/2006 e a data final como 08/11/2006, desse maneira ele pega tudo que entrou no dia 07/11/2006, onde posso está errando?


Rjcerri

Rjcerri

Curtidas 0

Respostas

Paullsoftware

Paullsoftware

22/11/2006

se você fizer simplesmente:
coloque um botão e no evento onclick o código abaixo
with dbcompras,sqlTBOC do //diminuindo o código
begin
SQL.Clear; 
//SQL.Add(´select * from tboc where chegou is null and between :dat1 and :dat2´); nessa linha vc quer trazer todos os registros cujo campo chegou está nulo e a data do intervalo selecionado correto?
SQL.Add(´select * from tboc where chegou is null and between :d1 and :d2´); 
ParamByName(´d1´).Value := FormatDateTime(´dd/mm/yyyy 01:00:00´,datainicial.DateTime); 
ParamByName(´d2´).Value := FormatDateTime(´dd/mm/yyyy 01:00:00´,datafinal.DateTime); 
//ou então assim:
//Params[0].Value := FormatDateTime(´dd/mm/yyyy´,datainicial.DateTime); 
//Params[1].Value := FormatDateTime(´dd/mm/yyyy´,datafinal.DateTime); 
Open;

qual o tipo de dados que o campo chegou suporta??? Data, Hora, DataHora, String???
creio que vai resolver... espero ter ajudado :wink:
qq coisa posta ae!!! :roll:


GOSTEI 0
Rjcerri

Rjcerri

22/11/2006

Paullsoftware, a sua ideia não, funcionou, estranho é que eu tenho um outro formulário utilizando a mesma tabela com o mesmo comando e funciona mas nesse não quer funcionar.


GOSTEI 0
Rjcerri

Rjcerri

22/11/2006

Quando eu coloco no format do parametro ´dd/mm/yyyy 08:26:44´ ele filtra, mas eu não quero que pegue a hora só a data, tem como filtrar somente a data sem a hora?


GOSTEI 0
POSTAR