GARANTIR DESCONTO

Fórum Aniversariantes do Mês.. #276827

12/04/2005

0

pessoal mais uma vez preciso da ajuda de vc´s

1° - tenho na minha Tabela de Clientes a data de aniversário do mesmo, gostaria de filtrar os aniversariantes de um determinado periodo.

Ex: gotaria de filtrar todos os aniversariantes de [b:29d1233a5d]01/01[/b:29d1233a5d] a [b:29d1233a5d]13/03[/b:29d1233a5d]

obs: no banco o campo [b:29d1233a5d]DataAniversario[/b:29d1233a5d] está [b:29d1233a5d]Date[/b:29d1233a5d]


Hviana

Hviana

Responder

Posts

12/04/2005

Ariovaldo

Select *
from Clientes
where DataAniversario between ´04/01/2005 and 04/13/2005


Responder

Gostei + 0

12/04/2005

Emerson Nascimento

na verdade deveria ser:

select * 
from tabela
where (extract(day from DataAniversario) between :DIAInicial and :DIAFinal)
  and extract(month from DataAniversario)=:MES


quando nos referenciamos à aniversariantes, geralmente não importa o ano de nascimento, por isso a busca é feita somente entre os DIAS de um determinado MÊS.
mais uma coisa: o campo data aniversário é algo que não deve ser gravado, pois a pessoa (se ainda estiver viva), faz aniversário uma vez por ano (esse campo está sendo incrementado - o ano - automaticamente?).


Responder

Gostei + 0

12/04/2005

Emerson Nascimento

na verdade deveria ser:

select * 
from tabela
where (extract(day from DataAniversario) between :DIAInicial and :DIAFinal)
  and extract(month from DataAniversario)=:MES


quando nos referenciamos à aniversariantes, geralmente não importa o ano de nascimento, por isso a busca é feita somente entre os DIAS de um determinado MÊS.
mais uma coisa: o campo data aniversário é algo que não deve ser gravado, pois a pessoa (se ainda estiver viva), faz aniversário uma vez por ano (esse campo está sendo incrementado - o ano - automaticamente?).


Responder

Gostei + 0

12/04/2005

Rjun

O exemplo do amigo emerson.en é perfeito se o limite de datas estiver no mesmo mes. Mas o hviana colocou como exemplo 01/01 a 13/03. Se o intervalo estiver sempre no mesmo ano, você pode criar uma funcão que pegue o mes e o dia fazendo a comparacao da seguinte forma.

Digamos que alguem faça aniversário em 25/02 e o periodo de busca seja o do exemplo. A função teria que retornar as datas para comparar da seguinte forma : a data 0225 (veja que esta invertido mmdd) tem que estar entre 0101 e 0313.

Agora se você colocar limites em anos diferentes, teria que adicionar o ano vigente e o ano subsequente para os limites e alterar o ano das datas do cadastro para fazer a comparação.


Responder

Gostei + 0

12/04/2005

Rjun

O exemplo do amigo emerson.en é perfeito se o limite de datas estiver no mesmo mes. Mas o hviana colocou como exemplo 01/01 a 13/03. Se o intervalo estiver sempre no mesmo ano, você pode criar uma funcão que pegue o mes e o dia fazendo a comparacao da seguinte forma.

Digamos que alguem faça aniversário em 25/02 e o periodo de busca seja o do exemplo. A função teria que retornar as datas para comparar da seguinte forma : a data 0225 (veja que esta invertido mmdd) tem que estar entre 0101 e 0313.

Agora se você colocar limites em anos diferentes, teria que adicionar o ano vigente e o ano subsequente para os limites e alterar o ano das datas do cadastro para fazer a comparação.


Responder

Gostei + 0

12/04/2005

Motta

vide :

http://forum.devmedia.com.br/viewtopic.php?t=59365&highlight=todate&sid=2b1366b57c5121c3a44bb487ec737980


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar