Jump to content
mm_edilson

Aniversários entre duas datas

Recommended Posts

Boa tarde. Preciso que minha query retorne os aniversariantes entre duas datas selecionadas em dois datetimepickers. 

 

Fiz assim:

	//Realiza a consulta 	Adoquery1.Close; 	Adoquery1.SQL.Clear; 	Adoquery1.SQL.Add('Select * from CadPessoas'); 	ADOQuery1.SQL.add('where ((Month(DtNasc) * 100) + Day(DtNasc)) between :DtNascIni and :DtNascFim'); 	AdoQuery1.SQL.add('Order by DtNasc'); 	ADOQuery1.Parameters.ParamByName('DtNascIni').Value := MonthOf(DateTimePicker1.DateTime) * 100 + DayOf(DateTimePicker1.DateTime); 	ADOQuery1.Parameters.ParamByName('DtNascFim').Value := MonthOf(DateTimePicker2.DateTime)*100 + DayOf(DateTimePicker2.DateTime); 	AdoQuery1.Open;
	

 

Só que ele ta confundindo os meses que tem o numero 1. Por exemplo, fiz uma consulta entre 01 de Janeiro e 01 de fevereiro. Ele retornou todos os aniversariantes de outubro, novembro, dezembro e janeiro. Já se a consulta for entre fevereiro e março, por exemplo, que não envolve meses que começam com o numero 1, dá certinho. 

 

Alguém poderia ajudar? Uso Delphi 7 e Access.

Share this post


Link to post
Share on other sites

boa noite amigo, eu faço assim e funciona perfeitamente, porem utilizo  dbxpress, + basta colocar a sql na forma q esta q vai funcionar tb, no caso abaixo eu comparo os dias somente, no caso abaixo seleciono o mes e o periodo  (entre o dia d1 e o dia d2 no mes desejado)

simpledataset1.Active:=False;
simpledataset1.dataset.CommandText := 'SELECT CODIGO,NOME, NASCIMENTO,TELEFONE FROM CLIENTES WHERE EXTRACT(MONTH FROM NASCIMENTO)=:MES AND EXTRACT(DAY FROM NASCIMENTO) BETWEEN :D1 AND :D2 ORDER BY EXTRACT(DAY FROM NASCIMENTO)';
SIMPLEDataSet1.dataset.ParamByName('Mes').AsInteger := StrToInt(Edit1.Text);
SIMPLEDataSet1.dataset.ParamByName('d1').AsInteger := StrToInt(Edit2.Text);
SIMPLEDataSet1.dataset.ParamByName('d2').AsInteger := StrToInt(Edit3.Text);
simpledataset1.Active:=True;
 

espero que te ajude de alguma forma

abraço

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Joelend
      Estou utilizando TPasLibVlcPlayer para reprodução de videos e preciso que estes sejam exibidos sem áudio. 
      Tentei utilizar a função "vlc.SetAudioMute(true); " porem não funcionou... 
      Olhando a documentação encontrei isso: 

      "Aviso 
      Esta função nem sempre funciona. Se não houver fluxo de reprodução de áudio ativo, o status de mudo poderá não estar disponível. Se a passagem digital (S / PDIF, HDMI ...) estiver em uso, o muting pode não ser aplicável. Além disso, alguns plug-ins de saída de áudio não suportam muting. 
      Nota 
      Para forçar a reprodução silenciosa, desative todas as faixas de áudio. Isso é mais eficiente e confiável do que o mudo." 

      No meu caso, estou utilizando o HDMI. Minha duvida é sobre como desativar as faixas de audio. 

      Alguém saberia ajudar?
    • By felk_fel@hotmail.com
      Boa tarde a todos!

      De vez em quando, acontece isso comigo, o Delphi compila a aplicação mas ela não roda ou fecha sozinha...Para resolver eu estou sempre tendo que fechar o delphi e criar uma nova aplicação. Alguém poderia me ajudar conforme o vídeo abaixo?

      https://www.youtube.com/watch?v=cFBJSS5yTN8

      Agradeço pela atenção.
    • By Felipe Garciax
      Ola,
       
      Estou com o seguinte problema, no formulario principal do meu projeto tenho um SplitView e um Image em AlClient com uma imagem em 193 kb, ao abrir e fechar o SplitView em execucao a imagem PISCA, ja usei no OBJECT INSPECTOR o DoubleBuffered em TRUE tanto para o form quanto para o SplitView e o problema persiste, ja fiz o teste no codigo tanto para o EVENTO OnShow e OnCreat:
      DoubleBuffered :=True;  e nenhum resultado... Help Me
    • By ericborrero
      Boa Noite a todos ....
       
      aguem pode me ajudar com esse código.... preciso que ele procure o menor valor e não o maior como esta aqui
       
       
       
      Procedure TfrmAvaliacao.PiorTempo;
      var
        ArrayString: Array [1 .. 5] of string;
        PiorTempo: string;
        i: Integer;
      begin
        ArrayString[1] := dbtext2.Caption;
        ArrayString[2] := dbtext4.Caption;
        ArrayString[3] := dbtext6.Caption;
        ArrayString[4] := dbtext8.Caption;
        ArrayString[5] := dbtext10.Caption;
        PiorTempo := EmptyStr;
          for i := low(ArrayString) to high(ArrayString) - 1 do
          if PiorTempo < ArrayString then
            PiorTempo := ArrayString;

        Label210.Caption := PiorTempo;
       
      end;
       
    • By Remeling
      Ola pessoal,
      Estou fazendo um sistema web em Delphi xe8 Intraweb, coloco os objetos no form e quando vou compilar o sistema, aparece somente a pagina em branco, o que estou fazendo errado.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.