Fórum Pesquisa aniversariantes entre 2 datas #370155
01/05/2009
0
Como faço uma pesquisa em um campo do tipo date (armazena a data de nascimento) que me retorne os aniversariatens entre 2 datas, por exemplo, como pesquisar as pessoas que aniversariam entre 10/04 e 10/05?
Essa pesquisa tem que ignorar o ano das 2 datas (só deve levar em conta o dia e o mes), pois como disse é para retornar os aniversariantes.
Estou usando DELPHI 7 / IBX / FIREBIRD 1.5
Grato
Luiz Carlos
L_carlos
Curtir tópico
+ 0Posts
01/05/2009
Jcfiora
Exemplo para um select na tabela ´PESSOAS´ com a estrutura :
ID_PESSOA INTEGER,
NOME VARCHAR(90),
DATA_NASC DATE
Observação :
A função LPAD é uma ´UDF´, portanto deve estar registrada no database.Para
registrar essa UDF, utilize o comando abaixo :
DECLARE EXTERNAL FUNCTION lpad
CSTRING(255), INTEGER, CSTRING(1)
RETURNS CSTRING(255) FREE_IT
ENTRY_POINT ´IB_UDF_lpad´ MODULE_NAME ´ib_udf´;
Para mais detalhes de uma olhada em :
C:\Arquivos de programas\Firebird\Firebird_1_5\UDF\ib_udf.sql
**********************************************************
Comando SQl
**********************************************************
SELECT
P.ID_PESSOA,
P.NOME,
LPAD(EXTRACT(DAY FROM P.DATA_NASC),2,0) ||´/´||
LPAD(EXTRACT(MONTH FROM P.DATA_NASC),2,0) AS DATA_NIVER
FROM
PESSOAS P
WHERE
EXTRACT(MONTH FROM P.DATA_NASC) BETWEEN 1 AND 12 /*Faixa de meses desejados*/
AND
EXTRACT(DAY FROM P.DATA_NASC) BETWEEN 1 AND 31 /*Faixa de dias desejados*/
ORDER
BY
EXTRACT(MONTH FROM CL.DATA_NASC) ASC,
EXTRACT(DAY FROM CL.DATA_NASC) ASC
Gostei + 0
06/05/2009
L_carlos
Luiz
Gostei + 0
06/05/2009
Jcfiora
Não precisa se preocupar com a distribuição da UDF, quando voce faz a instalação do Firebird ela ja acompanha o mesmo.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)