Aniversários em acess

recenso

Power Member
ola,

a questão é a seguinte:

tenho uma tabela com um campo datadenascimento e a partir dessa tabela queria criar uma consulta sobre os individuos que fazem anos entre hoje e daqui a 3 dias.

Alguem me poderá ajudar?
 
Talvez algo como:


SELECT *
FROM o_nome_da_tua_tabela
WHERE day(datadenascimento) between day(now) and day(now+ 3)
and month(datadenascimento) between month(now) and month(now +3)
 
Última edição:
NoMercy disse:
Talvez algo como:


SELECT *
FROM o_nome_da_tua_tabela
WHERE day(datadenascimento) between day(now) and day(now+ 3)
and month(datadenascimento) between month(now) and month(now +3)
Pensando bem, se fôr por exemplo 30 de Dezembro não dá porque a ultima condição fica:
"AND month(datadenascimento) between 12 and 1" o que faz com que a condição seja válida para todos os meses.
 
Acontece que o campo data de nascimento é só um com o formato "31-12-2004". Essa expressão poderá aplicar-se na mesma ou preciso ter 3 campos distintos na tabela (dia, Mes e ano) ? Obrigado pela ajuda
 
Eu estava a contar com que o campo da data de nascimento fosse só um ,tipo "dia-mês-ano" e o select estava feito para isso, mas depois é que me lembrei que no caso de ser a 30 de Dezembro, por exemplo, não dáva pelas razões que expliquei em cima.
 
Última edição:
Bom ou sou muito burro ou então há qualquer coisa mal...

SELECT * from socios
WHERE day(datanascimento) between day(now) and day(now+3)
and month(datanascimento) between 12 and 1;

Isto dá-me erro de sintaxe!!

Já experimentei com "12" (12) "1" (1) e nada disto dá...

Já agora o que estou a fazer mal??

Obrigado
 
Última edição:
isto seria a solução em C/AL....

table.SETRANGE("Data Nascimento", TODAY, TODAY+3);
if table.FIND('-') THEN
REPEAT
MESSAGE('%1', table."Nome Pessoa");
UNTIL table.NEXT=0

ELSE ERROR ('Acasala-se pouco nesta altura do ano');

no teu caso, estou bastante esquecido de SQL, mas não faltarão aí parenstis para agrupares os AND's ?
 
Última edição:
Back
Topo