GARANTIR DESCONTO

Fórum Como usar o comando FormatDateTime em um select? #454153

04/09/2013

0

Galera, tenho um select aqui mas ele da erro quando eu executo o comando, o campo que ele esta pegando é do tipo date, mas eu nao sei como que eu implemento o codigo para colocar a função FormatDateTime para converter meu código..

o codigo esta mais ou menos assim

ibquery1.close;
ibquery1.sql.clear;
ibquery1.sql.add (select * from TABELA where cod_empresa = 1 and data_lancamento between Edit1.text and edit2.text);
ibquery1.open;

logico que eu usei a concatenação para os valores que sao recebidos nos Edits....
Alguem ajuda ai? Valeeeeeeeeeu
Roberto Wutke

Roberto Wutke

Responder

Posts

04/09/2013

Marcos Oliveira

Roberto, não sei se é o seu caso, mas nos meus comandos SQL que uso, coloco os campos sempre entre aspas. Porém, uso PostgreSQL.
No meu caso ficaria assim:

ibquery1.sql.add (select * from TABELA where cod_empresa = 1 and data_lancamento between QuotedStr(Edit1.text) and QuotedStr(edit2.text));


Att,

Marcos
Responder

Gostei + 0

04/09/2013

Roberto Wutke

Então Marcos com os Quotedstr ele tambem dá erro, o que é estranho.... eu queria converter a data que a pessoa digitar para o formato 'dd.mm.yyyy' porque ai sim o banco reconheceria o comando
Responder

Gostei + 0

04/09/2013

Marcos Oliveira

Outra alternativa seria usar o StringReplace para substituir a barra pelo ponto... Não é a melhor solução, mas pode funcionar.
Responder

Gostei + 0

04/09/2013

Ricardo Araujo

caro amigo uso este cód no SQLSERVER
var
sSQL : String;
begin

sSQL := '';
sSQL := sSQL + ' SELECT * FROM TESTE ';
sSQL := sSQL + ' WHERE 1 = 1 '
sSQL := sSQL + ' and convert(date, [vencto], 103) between ';
sSQL := sSQL + ' convert(date, ' + QuotedStr(FormatDateTime('dd/mm/yyyy', edtVencimentoInicial.Date)) + ' , 103) ';
sSQL := sSQL + ' and convert(date, ' + QuotedStr(FormatDateTime('dd/mm/yyyy', edtVencimentoFinal.Date)) + ' , 103) ';

with dmDADOS do begin
cdsTeste.Close;
qTeste.SQL.Clear;
qTeste.SQL.Add(sSQL);
cdsTeste.Open;
end;
end;

pode usar este código que esta certo, só trocar o nome tabela Teste pela nome da sua tabela.

Responder

Gostei + 0

04/09/2013

Roberto Wutke

Valeu Marcos, o Replace deu certinho aqui e é bem simples de fazer.
Barreto, eu posso até usar o formatdate mas ficaria muito extenso meu código sendo que seria uma consulta simples e por enquanto o replace nao esta dando erro

Caso Resolvido, Grato a Todos
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar