Como procurar os aniversariantes em intervalo de datas?
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;
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
Curtidas 0
Respostas
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´);
e faça assim:
query1.ParamByName(´Mes´).asInteger := StrtoInt(edit1.text);
Query1.SQL.Add(´where extract(month from DataNasc) = :Mes´);
GOSTEI 0
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.
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
20/10/2003
Olá, tenho o mesmo problema, o que pretendo é verificar por SQL os aniversariantes num intervalo de datas.
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
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