Consulta entre datas com MySQL.
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+
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
Curtidas 0
Respostas
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
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
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
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