ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

ajuda em busca por datas

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
modemkaio55
Novato
Novato


Registrado: Sexta-Feira, 18 de Fevereiro de 2011
Mensagens: 30

MensagemEnviada: Sex Out 21, 2011 1:14 pm    Assunto: ajuda em busca por datas Responder com Citação

ola galera tenho um sistema e nele a dois DateTimePicker um como inicial e outro como final e quero buscar em meu banco de dados(MySQL) as datas entre esse período mais não sei como vou fazer. desde já obrigado
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
joemil
Moderador
Moderador


Registrado: Quinta-Feira, 25 de Março de 2004
Mensagens: 9099
Localização: Sinop-MT

MensagemEnviada: Sex Out 21, 2011 1:20 pm    Assunto: Responder com Citação

tente assim:

SELECT * FROM tabela
WHERE campo_data BETWEEN :data1 AND :data2

e no parametros da query:

ParamByname('data1').Value := DateTimePicker1.Date;
ParamByname('data2').Value := DateTimePicker2.Date;
_________________
<b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
modemkaio55
Novato
Novato


Registrado: Sexta-Feira, 18 de Fevereiro de 2011
Mensagens: 30

MensagemEnviada: Sex Out 21, 2011 2:01 pm    Assunto: Responder com Citação

joemil escreveu:
tente assim:

SELECT * FROM tabela
WHERE campo_data BETWEEN :data1 AND :data2

e no parametros da query:

ParamByname('data1').Value := DateTimePicker1.Date;
ParamByname('data2').Value := DateTimePicker2.Date;



infelizmente não deu certo
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
Anderson_bnu
Novato
Novato


Registrado: Terça-Feira, 16 de Agosto de 2011
Mensagens: 20

MensagemEnviada: Sex Out 21, 2011 2:51 pm    Assunto: Responder com Citação

O campo da sua tabela é DATE ou TIMESTAMP ?

Se for TIMESTAMP tenta assim:

Código:
SELECT * FROM tabela
 WHERE cast(campo_data as date) BETWEEN :data1 AND :data2

 e no parametros da query:

 ParamByname('data1').Value := DateTimePicker1.Date;
 ParamByname('data2').Value := DateTimePicker2.Date;


Pelo menos trabalho assim no Firebird, e funciona certinho.

Abraços

[quote="modemkaio55"]
joemil escreveu:
tente assim:

infelizmente não deu certo
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Jonatan500
Colaborador
Colaborador


Registrado: Sábado, 8 de Janeiro de 2011
Mensagens: 1064
Localização: Palmas/TO

MensagemEnviada: Sex Out 21, 2011 4:08 pm    Assunto: Responder com Citação

Tente assim se funcionar avisa

Código:
DM.ADOQUERY.Close;
DM.ADOQUERY.SQL.Clear;
DM.ADOQUERY.SQL.Add(' Select *');
DM.ADOQUERY.SQL.Add(' From TABELA where DATA between :dataini and :datafim');
DM.ADOQUERY.Parameters.ParamByName('dataini').Value := StrToDate(DATETIMEPICKER.DATE);
DM.ADOQUERY.Parameters.ParamByName('datafim').Value := StrToDate(DATETIMEPICKER.DATE);
DM.ADOQUERY.open;

_________________
"NESCIS QUIA EGO SUM PROGRAMMATOR"
#DelphiPower
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
pporto
Novato
Novato


Registrado: Terça-Feira, 17 de Julho de 2007
Mensagens: 50

MensagemEnviada: Sex Out 21, 2011 6:14 pm    Assunto: Re: ajuda em busca por datas Responder com Citação

modemkaio55 escreveu:
ola galera tenho um sistema e nele a dois DateTimePicker um como inicial e outro como final e quero buscar em meu banco de dados(MySQL) as datas entre esse período mais não sei como vou fazer. desde já obrigado


Era pra funcionar conforme dica da galera, porém verifique o formato padrão que o MySQL trabalha com data.

No MSSQL eu sei que o padrão é yyyy-mm-dd, funciona fazendo o que o pessoal sugeriu, porém se com você não está dando certo, verifique as propriedades DataType e ParamType do seu objeto de consulta.

Se mesmo assim não der certo, tente usando força bruta:

No objeto de consulta
Código:

SELECT * FROM Tabela
WHERE CAMPO_DATA BETWEEN :Data1 AND :Data2


No evento que irá efetuar a pesquisa
Código:

XXXXX.ParamByName('Data1').AsString = FormatDateTime('yyyy-mm-dd', DateTimePicker1.Date);
XXXXX.ParamByName('Data2').AsString = FormatDateTime('yyyy-mm-dd', DateTimePicker2.Date);


Se o padrão do MySQL for outro, basta alterar o primeiro parâmetro do FormatDateTime.

Até mais!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB