Pesquisa entre datas em sql server
Ola comunidade delphiana tenho um pequena duvida aqui.
Tenho um programa de chamados com alguns registros como testes e preciso fazer uma tela de pesquisa entre datas.
uso ado (addconetin,adoquery e datasource)
tenho dois maskedtis e um botao onde vou colocar a query de pesquisa, e quero ter os resultados em um dbgrid.
estou usando a query abaixo mais quando clico no botão nao aparece nada no grid e nem da erro..
if (strtodate(maskedit2.text)>=strtodate(maskedit1.text)) then
begin
If fdm.qrFiltroData.Active = True then;
fdm.qrFiltroData.sql.clear;
fdm.qrFiltroData.sql.add(´select * from chamado´);
fdm.qrFiltroData.sql.add(´where data between ´ + QuotedStr(maskedit1.text) + ´ and ´ + QuotedStr(maskedit2.text));
fdm.qrFiltroData.open;
end
else
showmessage(´Data inválida!´);
Tenho um programa de chamados com alguns registros como testes e preciso fazer uma tela de pesquisa entre datas.
uso ado (addconetin,adoquery e datasource)
tenho dois maskedtis e um botao onde vou colocar a query de pesquisa, e quero ter os resultados em um dbgrid.
estou usando a query abaixo mais quando clico no botão nao aparece nada no grid e nem da erro..
if (strtodate(maskedit2.text)>=strtodate(maskedit1.text)) then
begin
If fdm.qrFiltroData.Active = True then;
fdm.qrFiltroData.sql.clear;
fdm.qrFiltroData.sql.add(´select * from chamado´);
fdm.qrFiltroData.sql.add(´where data between ´ + QuotedStr(maskedit1.text) + ´ and ´ + QuotedStr(maskedit2.text));
fdm.qrFiltroData.open;
end
else
showmessage(´Data inválida!´);
Firekiller_am
Curtidas 0
Respostas
Wesleyavila
04/01/2006
Qual a base de dados que vc usa !?
GOSTEI 0
Firekiller_am
04/01/2006
Uso sql server e ado como esta no post blz...
GOSTEI 0
Romulocpd
04/01/2006
Veja.
Tente fazer um FORMAT para ele ficar no formato yyyy-mm-dd.
Tente fazer um FORMAT para ele ficar no formato yyyy-mm-dd.
GOSTEI 0
Firekiller_am
04/01/2006
romulocpd vc pode me dar exemplo pois nao sou muito esperiente em delphi ainda fera..
GOSTEI 0
Romulocpd
04/01/2006
Aqui nao tenho o Delphi por isso a função formatdatetime poderá estar errada:
Serie mais ou menos assim:
dm.qrFiltroData.sql.add(´where data between ´ + QuotedStr(FormatDateTime(maskedit1.text,´YYYY-MM-DD´)) + ´ and ´ + QuotedStr(FormatDateTime(maskedit2.text,´YYYY-MM-DD´)));
Desta forma ele ficará com o formato, mas veja a sintaxe da função FormatDateTime.
Vlw
Serie mais ou menos assim:
dm.qrFiltroData.sql.add(´where data between ´ + QuotedStr(FormatDateTime(maskedit1.text,´YYYY-MM-DD´)) + ´ and ´ + QuotedStr(FormatDateTime(maskedit2.text,´YYYY-MM-DD´)));
Desta forma ele ficará com o formato, mas veja a sintaxe da função FormatDateTime.
Vlw
GOSTEI 0
Emerson Nascimento
04/01/2006
evite o uso de instruções ´concatenadas´. prefira parâmetros para esse caso:
dataini := strtodate(maskedit1.text); datafim := strtodate(maskedit2.text); if datafim >= dataini then with fdm.qrFiltroData do begin close; sql.clear; sql.add(´select * from chamado´); sql.add(´where data between :dataini and :datafim´); parambyname(´dataini´).asdate := dataini; parambyname(´datafim´).asdate := datafim; open; end else showmessage(´Data inválida!´);
GOSTEI 0
Macario
04/01/2006
Olá realmente pode ser o formato da data, pois o SQL SERVER 2000, quando instalado, traz como default o formato em ingles(MMDDAAAA),
voce deve alterar a configuração do usuário no qual usa para ter acesso, para o language Portuguese (Brazil), para então o banco adotar as configurações regionais do windows.
Lembrando que não somente a data esta em formato diferente do que usamos habitualmente mas sim como o separador decimal.
Espero quer ajude.
:arrow:
voce deve alterar a configuração do usuário no qual usa para ter acesso, para o language Portuguese (Brazil), para então o banco adotar as configurações regionais do windows.
Lembrando que não somente a data esta em formato diferente do que usamos habitualmente mas sim como o separador decimal.
Espero quer ajude.
:arrow:
GOSTEI 0
Firekiller_am
04/01/2006
blz emerson.en vou testar aqui depois digo se funcionou...
GOSTEI 0
Firekiller_am
04/01/2006
blz emerson.en vou testar aqui depois digo se funcionou
GOSTEI 0