SQL - Aniversariantes do mês - Como comparar data do sistema

Delphi

02/02/2004

ola, meu nome é Airton

estou estudando SQL e tenho que fazer um relatorio em SQL no Delphi utilizando uma Query (Aniversariantes do DIA comparando com a data do sistema) e nao tenho muita experiencia no assunto, por isso te peço uma ajuda se for possivel.

estou usando o codigo;

begin
with query1 do
begin
Close;
SQL.Clear;
SQL.add(´SELECT DISTINCT nome, datanasc from Alunos.db´);
SQL.add(´WHERE EXTRACT(MONTH FROM datanasc) = 1´);
Open;
end;
end;

quero substituir o nº 1 que representa o mes de JANEIRO pelo mes da data do sistema.


Airtao

Airtao

Curtidas 0

Respostas

Ltres

Ltres

02/02/2004

Cara usa o decodedate

procedure TForm1.Button1Click(Sender: TObject);
var
  Year, Mounth, Day: Word;
begin
  DecodeDate(Date, Year, Mounth, Day);

  showmessage(inttostr(Mounth))
end;



GOSTEI 0
Ari

Ari

02/02/2004

Fera Caso a Dica acima não ficou clara, esta aqui esta no FAQ do Site do FireBase

Como obter a lista de aniversariantes do dia ?

Supondo uma tabela chamada CLIENTES que contém o campo ANIVERSARIO do tipo DATE ou TIMESTAMP (dialeto 3) e que deseja-se recuperar os aniversariantes de um determinado dia/mês (não importa o ano). Para fazer isso podemos utilizar a função EXTRACT da seguinte forma:

select c.*
from clientes c
where (extract (day from c.aniversario) = :dia_desejado)
and (extract (month from c.aniversario) = :mes_desejado);

dia_desejado e mes_desejado são parâmetros do tipo inteiro e que devem conter o dia (1-31) e o mês (1-12) desejados.


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

02/02/2004

Colega,

Adicione DateUtils na lista de uses da Form:

begin 
  with query1 do
  begin
    Close;
    SQL.Clear;
    SQL.add(´SELECT DISTINCT nome, datanasc from Alunos.db´);
    SQL.add(´WHERE EXTRACT(MONTH FROM datanasc) = :mes´); // Altere aqui
    ParamByName(´mes´).Value := MonthOf(Date); // Adicione esta linha
    Open;
  end;
end;


MonthOf é uma função da unit DateUtils que obtem o mês de uma data passada por valor no parâmetro ´mes´, no caso, a data do sistema operacional que é retornada pela função Date.


GOSTEI 0
POSTAR