Fórum Comandos SQL #291681
13/08/2005
0
Tenho um formulario com 2 DateTimePicker, um é a Data Inicial e o outro a Data Final, e um DBGrid. O usuário vai selecionar uma Data Inicial e Final (Ex: Data Inicial: 13/07/2005 e Data Final: 13/08/2005), então o DBgrip irá mostrar só os registro feitos durante esse periodo de 13/07/2005 a 13/07/2005.
Obrigado
Leandrosl
Curtir tópico
+ 0Posts
13/08/2005
Rjun
SELECT * FROM Tabela WHERE Data BETWEEN :Data1 AND :Data2
Gostei + 0
13/08/2005
Leandrosl
Obrigado
Gostei + 0
13/08/2005
Rjun
A cláusula BETWEEN seleciona os registros que tiverem o valor entre cláusula 1 e cláusula2. No exemplo ele seleciona os registros que tiveram o campo data entre os valores Data1 e Data2.
Gostei + 0
13/08/2005
Leandrosl
Aguardo resposta
Obrigado
Gostei + 0
13/08/2005
Cristianojedi
Qual tecnologia (DBExpress, quais componentes?) você está usando? O erro parou e filtrou os registros que você queria? Você está passando a query no componente?
Cristiano
Gostei + 0
14/08/2005
Leandrosl
With QueryAnuncio Do Begin Close; SQL.Clear; SQL.Add(´SELECT * FROM anuncios´); SQL.Add(´WHERE DataVenda BETWEEN:"´+DateTimePickerDInicial.DateTime+´" AND "´+DateTimePickerDFinal.DateTime+´"´); SQL.Add(´ORDER BY NomeCliente´); Open; End; Obrigado
Gostei + 0
14/08/2005
Cristianojedi
With QueryAnuncio Do
Begin
Close;
SQL.Clear;
SQL.Add(´SELECT * FROM anuncios´);
SQL.Add(´WHERE DataVenda BETWEEN :DATAINI AND :DATAFIN´);
SQL.Add(´ORDER BY NomeCliente´);
ParamByName(´DATAINI´).AsDate := DateTimePickerDInicial.Date;
ParamByName(´DATAFIN´).AsDate := DateTimePickerDFinal.Date;
Open;
End;
Cristiano
Gostei + 0
14/08/2005
Leandrosl
Segue abaixo o codigo:
With QueryAnuncio Do Begin Close; SQL.Clear; SQL.Text:=´SELECT * FROM anuncios WHERE DataVenda BETWEEN :DataInicial AND :DataFinal´; ParamByName(´DataInicial´).AsDate := DateTimePickerDInicial.Date; ParamByName(´DataFinal´).AsDate := DateTimePickerDFinal.Date; Open; End;
Gostei + 0
14/08/2005
Lynx
With QueryAnuncio Do Begin Close; SQL.Clear; SQL.Text:=´SELECT * FROM anuncios WHERE DataVenda BETWEEN :DataInicial AND :DataFinal´; ParamByName(´DataInicial´).AsDate := DateTimePickerDInicial.Date; ParamByName(´DataFinal´).AsDate := DateTimePickerDFinal.Date; Open; End;
Gostei + 0
14/08/2005
Lynx
segue abaixo
With QueryAnuncio Do Begin Close; SQL.Clear; SQL.add:=´SELECT * FROM anuncios WHERE DataVenda BETWEEN :DataInicial AND :DataFinal´; ParamByName(´DataInicial´).AsDate := DateTimePickerDInicial.Date; ParamByName(´DataFinal´).AsDate := DateTimePickerDFinal.Date; Open; End;
Gostei + 0
14/08/2005
Leandrosl
Obrigado
Gostei + 0
14/08/2005
Leandrosl
O Problema está no Tipo do campo da Tabela, quando eu coloco na tabela o campo DataVenda como ´Date´, o formato fica (Ex:2005-01-08), e não 01/08/2005, No Codigo eu coloquei assim, eu sei que está errado mais não deu erro
With QueryAnuncio Do Begin Close; SQL.Clear; SQL.Add(´SELECT * FROM anuncios WHERE DataVenda >= :DataInicial AND DataVenda <= :DataFinal´); ParamByName(´DataInicial´).AsString := DateToStr(DateTimePickerDInicial.Date); ParamByName(´DataFinal´).AsString := DateToStr(DateTimePickerDFinal.Date); SQL.Add(´ORDER BY NomeCliente´); Open; End;
Então eu acho que fica mais facil e Converter o campo ´DataVenda´ para Date, o que vcs acham ?
Obrigado
Gostei + 0
15/08/2005
Leandrosl
Obrigado
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)