1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Aniversários em acess

Discussão em 'Programação' iniciada por recenso, 12 de Março de 2005. (Respostas: 6; Visualizações: 842)

  1. recenso

    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?
     
  2. NoMercy

    NoMercy Power Member

    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: 12 de Março de 2005
  3. NoMercy

    NoMercy Power Member

    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.
     
  4. recenso

    recenso Power Member

    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
     
  5. NoMercy

    NoMercy Power Member

    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: 14 de Março de 2005
  6. recenso

    recenso Power Member

    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: 14 de Março de 2005
  7. zx-9r

    zx-9r Power Member

    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: 14 de Março de 2005

Partilhar esta Página