SQL para saber aniversariantes
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 .
Lembrando que do periodo de dadas informado só posso considerar dia e mes . Exemplo aniversariantes de 15/06 a 10/07 .
Reginaldo174
Curtidas 0
Respostas
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) ;
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
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);
Exemplo:
SQL := ´SELECT * FROM TABELA1 WHERE NOME = ´+QuotedStr(Nome);
GOSTEI 0
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))
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