Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
modemkaio55 Novato
![Novato Novato](../modules/PNphpBB2/templates/PNTheme/images/narodniki-classic/star1.gif)
Registrado: Sexta-Feira, 18 de Fevereiro de 2011 Mensagens: 30
|
Enviada: Sex Out 21, 2011 1:14 pm Assunto: ajuda em busca por datas |
|
|
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 |
|
![](templates/subSilver/images/spacer.gif) |
joemil Moderador
![Moderador Moderador](../modules/PNphpBB2/templates/PNTheme/images/narodniki-classic/moderador.gif)
Registrado: Quinta-Feira, 25 de Março de 2004 Mensagens: 9099 Localização: Sinop-MT
|
Enviada: Sex Out 21, 2011 1:20 pm Assunto: |
|
|
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 |
|
![](templates/subSilver/images/spacer.gif) |
modemkaio55 Novato
![Novato Novato](../modules/PNphpBB2/templates/PNTheme/images/narodniki-classic/star1.gif)
Registrado: Sexta-Feira, 18 de Fevereiro de 2011 Mensagens: 30
|
Enviada: Sex Out 21, 2011 2:01 pm Assunto: |
|
|
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 |
|
![](templates/subSilver/images/spacer.gif) |
Anderson_bnu Novato
![Novato Novato](../modules/PNphpBB2/templates/PNTheme/images/narodniki-classic/star1.gif)
Registrado: Terça-Feira, 16 de Agosto de 2011 Mensagens: 20
|
Enviada: Sex Out 21, 2011 2:51 pm Assunto: |
|
|
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 |
|
![](templates/subSilver/images/spacer.gif) |
Jonatan500 Colaborador
![Colaborador Colaborador](../modules/PNphpBB2/templates/PNTheme/images/narodniki-classic/colaborador.gif)
Registrado: Sábado, 8 de Janeiro de 2011 Mensagens: 1064 Localização: Palmas/TO
|
Enviada: Sex Out 21, 2011 4:08 pm Assunto: |
|
|
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 |
|
![](templates/subSilver/images/spacer.gif) |
pporto Novato
![Novato Novato](../modules/PNphpBB2/templates/PNTheme/images/narodniki-classic/star1.gif)
Registrado: Terça-Feira, 17 de Julho de 2007 Mensagens: 50
|
Enviada: Sex Out 21, 2011 6:14 pm Assunto: Re: ajuda em busca por datas |
|
|
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 |
|
![](templates/subSilver/images/spacer.gif) |
|