Consulta retornando vazia quando relaciono a data!
21/02/2016
0
Galera, boa tarde!
Preciso de uma ajuda bem urgente!
Utilizo o banco de dados da minha empresa e na Tabela que busco as informações tem uma "Data_Referencia" que está no formato "dia/mês/ano", "01/06/2011". Porém, quando utilizo o comando Where Data_Referencia = '01/06/2011' ela retorna vazia! já tentei Data_Referencia in ('01/06/2011'), já tentei sem as aspas e nada!
Me deem esse HELP!
Preciso de uma ajuda bem urgente!
Utilizo o banco de dados da minha empresa e na Tabela que busco as informações tem uma "Data_Referencia" que está no formato "dia/mês/ano", "01/06/2011". Porém, quando utilizo o comando Where Data_Referencia = '01/06/2011' ela retorna vazia! já tentei Data_Referencia in ('01/06/2011'), já tentei sem as aspas e nada!
Me deem esse HELP!
Anderson Souza
Curtir tópico
+ 0
Responder
Posts
21/02/2016
William
Se o formato é dd/mm/yyyy então imagino que esteja em VARCHAR, já vi casos em que a data estava gravada "1/6/2011" e a pesquisa era feita com "01/06/2011", como estamos comparando strings é claro que não bate.
Veja se não esse o seu caso!
Veja se não esse o seu caso!
Responder
21/02/2016
Crist
Olá, você não informou o formato do campo, se o mesmo é Date ou DateTime. Verificar também se as datas caso seja dateTime não tem a hora junto, geralmente ficam com zeros quando grava apenas data.
Segue um exemplo:
procedure TForm1.Button1Click(Sender: TObject);
var
FormatoDeDataGlobal, strSql :String;
begin
//formato da data para deteTime
FormatoDeDataGlobal := 'dd/mm/yyyy ' + ' 00:00:00.000';
strSql := ' SELECT * FROM TABELA WHERE Data_Referencia BETWEEN '
+ #39 + FormatDateTime(FormatoDeDataGlobal ,DateTimePicker1.DateTime) + #39 +
' AND ' + #39 + FormatDateTime(FormatoDeDataGlobal,DateTimePicker2.DateTime) ;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
//ADOQuery1.SQL.Add(strSql); //pode usar também desta forma
ADOQuery1.SQL.Text := strSql;
//colocar o conteudo da consulta no memo para que você possa testar no sql server é verificar
//se tem alguem erro no sql
Memo1.Lines.Add(strSql);
ADOQuery1.Open;
end;
Segue um exemplo:
procedure TForm1.Button1Click(Sender: TObject);
var
FormatoDeDataGlobal, strSql :String;
begin
//formato da data para deteTime
FormatoDeDataGlobal := 'dd/mm/yyyy ' + ' 00:00:00.000';
strSql := ' SELECT * FROM TABELA WHERE Data_Referencia BETWEEN '
+ #39 + FormatDateTime(FormatoDeDataGlobal ,DateTimePicker1.DateTime) + #39 +
' AND ' + #39 + FormatDateTime(FormatoDeDataGlobal,DateTimePicker2.DateTime) ;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
//ADOQuery1.SQL.Add(strSql); //pode usar também desta forma
ADOQuery1.SQL.Text := strSql;
//colocar o conteudo da consulta no memo para que você possa testar no sql server é verificar
//se tem alguem erro no sql
Memo1.Lines.Add(strSql);
ADOQuery1.Open;
end;
Responder
Clique aqui para fazer login e interagir na Comunidade :)