Fórum Utilizando select para consultar campos com data. #367829
21/01/2009
0
Estou utilizando o Delphi 7.
Tenho um banco em firebird 2.0 e uma das tabelas tem um campo date.
Gostaria de utilizar um select para fazer uma consulta no banco.
strSql := ´Select * from tabela2 where campodata = ´ + DatadeHoje
strSql := ´select * from tabela2 where campodata = ´ + DatadeOntem
como faço isto no delphi?
Vcs entenderam o que eu quero?
No primeiro select quero que ele me mostre todos os registros onde o campodata seja igual a data de hoje.
No segundo select quero que ele me mostre todos os registros onde o campodata seja igual a data de ontem.
Tem como juntar os dois selects em um só? Como faço isto?
Obrigado.
Uelinton
Uelinton_reis
Curtir tópico
+ 0Posts
21/01/2009
Fabriciocolombo
Se quiser usar as duas datas no mesmo select, pode utilizar o condicional ´IN´:
´Select * from tabela2 where campodata in (´ + FormatDateTime(´YYYY-MM-DD´, DatadeHoje) + ´,´ + FormatDateTime(´YYYY-MM-DD´, DatadeOntem) + ´)´;
Gostei + 0
22/01/2009
Luiz Henrique
Bom dia, tudo bl
Nao cheguei a testar neste formato ai Fabricio, eu uso: ´mm/dd/yyyy´ para firebird.
Gostei + 0
22/01/2009
Uelinton_reis
Bom dia Fabricio,
Estou fazendo desta forma mas esta dando erro:
strSqlOrc:= ´select * from ORC where DATA_STATUS_ORC = ´ + FormatDateTime(´DD-MM-YYYY´,date);
menuprin.IBQOrc.Close;
menuprin.IBQOrc.SQL.Clear;
menuprin.IBQOrc.SQL.Add(strSqlOrc);
menuprin.IBQOrc.Open;
Ele da o seguinte erro:
Debugger Exception Notification
Project SGKB.exe raised exception class EIBInterBaseError with message ´expression evaluation not supported´. Process stopped. Use Step or Run to continue.
Por que será que esta dando este erro.
Obrigado.
Gostei + 0
22/01/2009
Joaoshi
strSqlOrc:= ´select * from ORC where DATA_STATUS_ORC = ´ + FormatDateTime(´DD-MM-YYYY´,date);
para:
strSqlOrc:= ´select * from ORC where DATA_STATUS_ORC = ´ + QuotedStr(FormatDateTime(´DD-MM-YYYY´,date));
Espero ter ajudado.
Gostei + 0
22/01/2009
Uelinton_reis
strSqlOrc:= ´select * from ORC where DATA_STATUS_ORC = ´ + FormatDateTime(´DD-MM-YYYY´,date);
strSqlOrc:= ´select * from ORC where DATA_STATUS_ORC = ´ + QuotedStr(FormatDateTime(´DD-MM-YYYY´,date));
Caros amigos,
consegui resolver o problema desta forma:
strSqlOrc:= ´select * from ORC where DATA_STATUS_ORC = current_date´;
Beleza, ele esta fazendo uma consulta no banco para me mostrar todos os registros cadastrado com data de hoje..... RESOLVIDO
Agora eu preciso que ele me faça a consulta e me mostre todos os registro do dia de ontem.
como devo fazer.
obrigado.
Gostei + 0
23/01/2009
Leonardo_age
Tente converter a data da senguinte maneira:
Promeiro cria a função:
Function FormatDateBD(data:string) : String; Begin case strtoint(copy(data,4,2)) of 1 : result:=copy(data,1,2)+´-Jan-´+copy(data,7,4); 2 : result:=copy(data,1,2)+´-Feb-´+copy(data,7,4); 3 : result:=copy(data,1,2)+´-Mar-´+copy(data,7,4); 4 : result:=copy(data,1,2)+´-Apr-´+copy(data,7,4); 5 : result:=copy(data,1,2)+´-May-´+copy(data,7,4); 6 : result:=copy(data,1,2)+´-Jun-´+copy(data,7,4); 7 : result:=copy(data,1,2)+´-Jul-´+copy(data,7,4); 8 : result:=copy(data,1,2)+´-Aug-´+copy(data,7,4); 9 : result:=copy(data,1,2)+´-Sep-´+copy(data,7,4); 10 : result:=copy(data,1,2)+´-Oct-´+copy(data,7,4); 11 : result:=copy(data,1,2)+´-Nov-´+copy(data,7,4); 12 : result:=copy(data,1,2)+´-Dec-´+copy(data,7,4); else result := ´data invalida´; end; end;
Depois disso ao passar a data a ser gravada/consultada no banco de dados utilize o seguinte comando:
strSqlOrc:= ´select * from ORC where DATA_STATUS_ORC = ´ + QuotedStr(FormatDateBD(FormatDateTime(´DD-MM-YYYY´,date -1)));
QuotedStr -> Coloca aspas nas extremidadas do texto = ´01/01/2008´, lembre-se que mesmo sendo uma data essa informação é um texto e deve ser tratada como tal.
FormatDateBD -> tranforma a data no formado dd-mmm-yyyy de forma que o mês seja escrito em inglês.
FormatDateTime -> utilizei esse comando para forçar a formatação da data com dois dígitos no mês, senão dá erro na função anterior.
Date -1 -> pois quero o dia de ontem. Poderia passar a data que quisesse, até mesmo uma data armazenada em tabela.
Tente assim.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)