Aniversariantes do Mês..
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]
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
Curtidas 0
Respostas
Ariovaldo
12/04/2005
Select *
from Clientes
where DataAniversario between ´04/01/2005 and 04/13/2005
from Clientes
where DataAniversario between ´04/01/2005 and 04/13/2005
GOSTEI 0
Emerson Nascimento
12/04/2005
na verdade deveria ser:
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?).
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?).
GOSTEI 0
Emerson Nascimento
12/04/2005
na verdade deveria ser:
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?).
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?).
GOSTEI 0
Rjun
12/04/2005
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.
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.
GOSTEI 0
Rjun
12/04/2005
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.
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.
GOSTEI 0
Motta
12/04/2005
vide :
http://forum.devmedia.com.br/viewtopic.php?t=59365&highlight=todate&sid=2b1366b57c5121c3a44bb487ec737980
http://forum.devmedia.com.br/viewtopic.php?t=59365&highlight=todate&sid=2b1366b57c5121c3a44bb487ec737980
GOSTEI 0