Array
(
)

Consulta retornando vazia quando relaciono a data!

Anderson Souza
   - 21 fev 2016

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!

William (devwilliam)
   - 21 fev 2016

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!

Crist
   - 21 fev 2016

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:

Citação:

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;