Consulta entre datas com MySQL.

MySQL

18/03/2004

Galera to tendo dificuldade aqui pra fazer uma consulta entre datas, estou utilizando MySQL como banco de dados, segue abaixo o problema:

with fdm.QryCRecebidas do
begin
Close;
commandtext :=
´select * from tbcontasr where Quitacao >= ´´ +
Edit1.text + ´´ and Quitacao <= ´´ + Edit2.text + ´´ order by Quitacao´;
Open;
end;

Quando eu faço como acima, não gera erro, porém não filtra as datas que eu quero pois esta fazendo a comparação entre strings.. Segue abaixo o que eu tentei fazer:

with fdm.QryCRecebidas do
begin
Close;
commandtext :=
´select * from tbcontasr where Quitacao >= ´´ +
StrToDate(Edit1.text) + ´´ and Quitacao <= ´´ + StrToDate(Edit2.text) + ´´ order by Quitacao´;
Open;
end;

Quando eu faço como acima, ele gera erro de conversão e me fala q ta tentando comparar uma string com campo data.

Alguem me da um help ae por favor, como posso fazer essa consulta?

T+


Loki

Loki

Curtidas 0

Respostas

Mysys

Mysys

18/03/2004

Query.close;
Query.Sql.Add(´ select * from tbcontasr ´);
Query.Sql.Add(´ where Quitacao >= :Data_Inicial ´);
Query.Sql.Add(´ and Quitacao <= :Data_Final ´);
Query.Sql.Add(´ order by Quitacao ´);
Query.Parames[0].AsDateTime := StrToDate(EDit_Data_Inicial.text);
Query.Parames[1].AsDateTime := StrToDate(EDit_Data_Final.text);
Query.Open;


use paremetros pra colocar o valor das datas em uma consulta
sql porque o mysql grava data assim = aaaa-mm-dd
e bem provavel que voce esta mandando dd/mm/aaaa
ai c voce mandar por parametros a query vai entender e arrumar


GOSTEI 0
Braytiner Heggendorn

Braytiner Heggendorn

18/03/2004

Eu faço assim, por que o Mysql armazena datas em um format diferente

with dtmcadastros.qryclientes do
begin
Close;
SQL.Clear;
SQL.Add(´SELECT * FROM CLI WHERE´);
if Trim(edtcodigo.Text) <> ´´ then
SQL.Add(´CLI_COD LIKE ´¬´+Trim(edtcodigo.Text)+´¬´ AND´); //String
//
if Trim(edtrazao.Text) <> ´´ then
SQL.Add(´CLI_RAZAO LIKE ´¬´+Trim(edtrazao.Text)+´¬´ AND´); //String
//
if Trim(cmbpessoa.Text) <> ´´ then
SQL.Add(´CLI_PESSOA LIKE ´¬´+Trim(cmbpessoa.Text)+´¬´ AND´); //String
//
if Trim(edtfantasia.Text) <> ´´ then
SQL.Add(´CLI_FANTASIA LIKE ´¬´+Trim(edtfantasia.Text)+´¬´ AND´); //String
//
if Trim(edtbairro.Text) <> ´´ then
SQL.Add(´CLI_BAIRRO LIKE ´¬´+Trim(edtbairro.Text)+´¬´ AND´); //String
//
if Trim(edtcidade.Text) <> ´´ then
SQL.Add(´CLI_CIDADE LIKE ´¬´+Trim(edtcidade.Text)+´¬´ AND´); //String
//
if Trim(cmbcredito.Text) <> ´´ then
SQL.Add(´CLI_CREDITO LIKE ´¬´+Trim(cmbcredito.Text)+´¬´ AND´); //String
//
if Trim(cmbestado.Text) <> ´´ then
SQL.Add(´CLI_UF LIKE ´¬´+Trim(cmbestado.Text)+´¬´ AND´); //String
//
SQL.Add(´CLI_NASCIMENTO >= ´´+FormatDateTime(´yyyy-mm-dd´,jdtpnascimentoi.Date)+´´ AND´); //Data
SQL.Add(´CLI_NASCIMENTO <= ´´+FormatDateTime(´yyyy-mm-dd´,jdtpnascimentof.Date)+´´ AND´);
SQL.Add(´CLI_CADASTRO >= ´´+FormatDateTime(´yyyy-mm-dd´,jdtpcadastroi.Date)+´´ AND´); //Data
SQL.Add(´CLI_CADASTRO <= ´´+FormatDateTime(´yyyy-mm-dd´,jdtpcadastrof.Date)+´´ AND´); //Data
SQL.Add(´CLI_ULTCOMP >= ´´+FormatDateTime(´yyyy-mm-dd´,jdtpultcomprai.Date)+´´ AND´); //Data
SQL.Add(´CLI_ULTCOMP <= ´´+FormatDateTime(´yyyy-mm-dd´,jdtpultcompraf.Date)+´´´); //Data
Open;
end;

Valeu.

Braytiner


GOSTEI 0
POSTAR