SQL para saber aniversariantes

Delphi

11/07/2005

Quais os comando SQL para saber os aniversariantes entre duas datas ?
Lembrando que do periodo de dadas informado só posso considerar dia e mes . Exemplo aniversariantes de 15/06 a 10/07 .


Reginaldo174

Reginaldo174

Curtidas 0

Respostas

Marcusbraga

Marcusbraga

11/07/2005

não sei qual BD voce usa mas no firebird isso funciona

declare essas variaveis como string
valdata, dia, mes
valdata1, dia1, mes1


valdada :=FormatDateTime(´dd,mm,yyyy´, datainicial);
dia:= copy(valdata1, 1,2);
mes:= copy(valdata1, 4, 2);

valdata1:= FormatDateTime(´dd,mm,yyyy´,Datafinal);
dia1:= copy(valdata1, 1,2);
mes1:= copy(valdata1, 4, 2);

´ Select * From Cliente where extract(Month From Cliente.Datanasc)>= ´ + #39 + mes + 39 +´ and extract(Day From Cliente.Datanasc) >= ´ + 39 + dia + 39 + ´ and extract(Month From Cliente.Datanasc)<= ´ + 39 + mes1 + 39 +´ and extract(Day From Cliente.Datanasc) <= ´ + 39 + dia1 + 39) ;


GOSTEI 0
Pablobr

Pablobr

11/07/2005

Vale lembrar que não é preciso ficar colocando aspas simples (#39), basta usar a função QuotedStr do Delphi.

Exemplo:

SQL := ´SELECT * FROM TABELA1 WHERE NOME = ´+QuotedStr(Nome);


GOSTEI 0
Reginaldo174

Reginaldo174

11/07/2005

Valeu amigos ! O banco de dados é firebird e tratei como segue

select * from alunos
WHERE ((EXTRACT(MONTH FROM alu_nascim) = 8) AND (EXTRACT(DAY FROM alu_nascim) between 10 and 30))
union
select * from alunos
WHERE ((EXTRACT(MONTH FROM alu_nascim) = 9) AND (EXTRACT(DAY FROM alu_nascim) between 1 and 10))


GOSTEI 0
POSTAR