Fórum SQL - Aniversariantes do mês - Como comparar data do sistema #211184
02/02/2004
0
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
Curtir tópico
+ 0Posts
02/02/2004
Ltres
procedure TForm1.Button1Click(Sender: TObject); var Year, Mounth, Day: Word; begin DecodeDate(Date, Year, Mounth, Day); showmessage(inttostr(Mounth)) end;
Gostei + 0
02/02/2004
Ari
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
02/02/2004
Aroldo Zanela
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
Clique aqui para fazer login e interagir na Comunidade :)