Como procurar os aniversariantes em intervalo de datas?

Delphi

20/10/2003

Ola pessoal estou com um probleminha aqui, eu quero procurar os aniversariantes por um intervalo de datas que eu especificar ok? os fontes a seguinte me buscam as informações corretamente eu poderia adapta-la para buscar meus aniversariantes, mas o problema é o seguinte o formato da data de anirversario é DD/MM/AAAA nos fontes abaixo ele buscaria da mesma maneira DD/MM/AAAA que não me serviria os fontes deveriam buscar apenas DD/MM assim me proporcionaria o desejado. Se alguem puder me dar uma dicazinha fico extremamente agradecido.

procedure tform_nomeados.buscageral;
var
Inicio,Final:string;

begin
If edit2.Text < edit1.text Then
begin
ShowMessage(´Intervalo de datas inválido, a data inicial é maior que a data final!´);
edit2.text := edit1.text;
end
Else
begin
Inicio := (edit1.text);
Final := (edit2.text);

with form_principal.tb_servidor do
begin
form_principal.Query1.SQL.Clear;
form_principal.Query1.SQL.Add(´SELECT * FROM servidor WHERE nomeacao >= :pInicial and nomeacao<= :pFinal´);
form_principal.Query1.ParamByName(´pinicial´).AsDateTime := StrToDate(Inicio);
form_principal.Query1.ParamByName(´pfinal´).AsDateTime := StrToDate(Final);
form_principal.Query1.Prepare;
form_principal.Query1.Open;
form_rel_busca.QuickRep1.Preview;
end;
close;
end;
end;


Machado

Machado

Curtidas 0

Respostas

Thoor Cobain

Thoor Cobain

20/10/2003

Insitra um edit onde a pessoa digite o mes do aniversariante
e faça assim:

query1.ParamByName(´Mes´).asInteger := StrtoInt(edit1.text);
Query1.SQL.Add(´where extract(month from DataNasc) = :Mes´);


GOSTEI 0
Machado

Machado

20/10/2003

[quote:6b7b56dc1c=´Thoor Cobain´]Insitra um edit onde a pessoa digite o mes do aniversariante
e faça assim:

query1.ParamByName(´Mes´).asInteger := StrtoInt(edit1.text);
Query1.SQL.Add(´where extract(month from DataNasc) = :Mes´);[/quote:6b7b56dc1c]


Caro colega você não teria uma outra maneiro, pq deste jeito eu ficaria com a listagem apenas do mês e eu gostaria de verificar de acordo com os dias informados no inicial e no final (os são edit´s) pq desta maneira eu buscaria por semana ok grato.


GOSTEI 0
Jf

Jf

20/10/2003

Olá, tenho o mesmo problema, o que pretendo é verificar por SQL os aniversariantes num intervalo de datas.

SQL.Add(´SELECT * FROM Clientes´);
SQL.Add(´WHERE EXTRACT(DAY FROM DataNascimento) >= :P1  AND      EXTRACT(MONTH FROM DataNascimento) >= :P2´);
   SQL.Add(´  AND EXTRACT(DAY FROM DataNascimento) <= :P3 AND EXTRACT(MONTH FROM DataNascimento) <= :P4); 


Onde:
P1 := DiaInicial, P2:= MesInicial, P3 := DiaFinal e P4 := Mes Final

Se quiser saber entre:
1- Data Inicial := 25-06-2004, Data Fim 30-06-2004 funciona
perfeitamente.
2- Data Inicial := 25-06-2004, Data Fim 05-07-2004, como o mês é diferente já não funciona.
3- Data Inicial := 25-12-2004, Data Fim 05-01-2005, como o ano diferente já não funciona.

Se tiveres a resposta, agradeço que me envies.

Grato JF


GOSTEI 0
POSTAR