Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

KUROL3

aniversário

Recommended Posts

Olá a todos estou com uma dúvida de como fazer para exibir os aniversariantes de now() "hoje" até 30 dias para frente

alguem poderia ajudar

 

tentei não deu certo

select * from

usuarios

where

DATE(NOW()) <= DATE(REPLACE(data_nascimento, YEAR(data_nascimento), YEAR(CURDATE())))

 

tentei assim tb não deu certo

DATE(NOW())BETWEEN DATE(REPLACE(data_nascimento, YEAR(data_nascimento), YEAR(CURDATE()))) AND DATE_ADD(REPLACE(data_nascimento, YEAR(data_nascimento), YEAR(CURDATE())), INTERVAL 30 DAY)

 

eu não posso usar o month pq não é do mes atual e sim da data de hj até 30 dias para frente...

Marco

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poderia ser algo como:

 

SELECT Codigo, DataCad FROM TABELA
WHERE(DataCad BETWEEN CAST(NOW() AS DATE) AND(DATE_ADD(CAST(NOW() AS DATE), INTERVAL 30 DAY)))

 

Eu sempre procuro converter as datas devido aos minutos, quando os mesmos não são utilizados, porque em determinados relatórios, algumas informações podem não aparecer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não testei o seu código pois não dará certo ... pq você está pesquisando entre hj e 30 dias para frente.. sem levar em consideração que o aniversário "ex: o meu é " 02/02/1979 está a mais de 30 anos para trás.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara isso vai precisar de uma serie de adaptações creio eu

 

Bom fiz rapidamente uma forma de identificar o proximo aniversario de cada um

 

Usei a base de dados daqui do forum que é em mysql também

 

Só que ela possui um campo para o dia, um para o mes e um para o ano então precisei juntar tudo aqui mas se no seu caso for um campo só apenas retire os CONCAT que eu usei

 

SELECT Nome,  CONCAT(Ano_Nascimento, '-', Mes_Nascimento, '-', Dia_Nascimento), IF( UNIX_TIMESTAMP(CONCAT(YEAR(NOW()), '-', Mes_Nascimento, '-', Dia_Nascimento, ' 00:00:00')) > UNIX_TIMESTAMP(), FROM_UNIXTIME(UNIX_TIMESTAMP(CONCAT(YEAR(NOW()), '-', Mes_Nascimento, '-', Dia_Nascimento, ' 00:00:00'))), FROM_UNIXTIME(UNIX_TIMESTAMP(CONCAT(YEAR(NOW()) + 1, '-', Mes_Nascimento, '-', Dia_Nascimento, ' 00:00:00'))) ) AS Proximo_Aniversario FROM TABELA ORDER BY Mes_Nascimento, Dia_Nascimento

 

 

Com isso temos o próximo aniversario ai seria apenas usar o que o João Paulo Taraciuk passou

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara isso vai precisar de uma serie de adaptações creio eu

 

Bom fiz rapidamente uma forma de identificar o proximo aniversario de cada um

 

Usei a base de dados daqui do forum que é em mysql também

 

Só que ela possui um campo para o dia, um para o mes e um para o ano então precisei juntar tudo aqui mas se no seu caso for um campo só apenas retire os CONCAT que eu usei

 

SELECT Nome,  CONCAT(Ano_Nascimento, '-', Mes_Nascimento, '-', Dia_Nascimento), IF( UNIX_TIMESTAMP(CONCAT(YEAR(NOW()), '-', Mes_Nascimento, '-', Dia_Nascimento, ' 00:00:00')) > UNIX_TIMESTAMP(), FROM_UNIXTIME(UNIX_TIMESTAMP(CONCAT(YEAR(NOW()), '-', Mes_Nascimento, '-', Dia_Nascimento, ' 00:00:00'))), FROM_UNIXTIME(UNIX_TIMESTAMP(CONCAT(YEAR(NOW()) + 1, '-', Mes_Nascimento, '-', Dia_Nascimento, ' 00:00:00'))) ) AS Proximo_Aniversario FROM TABELA ORDER BY Mes_Nascimento, Dia_Nascimento

 

 

Com isso temos o próximo aniversario ai seria apenas usar o que o João Paulo Taraciuk passou

 

KARAKA QUE VIAGEM EM...!!!!

 

BOM TA FALTANDO OS 30 DIAS ..

 

MARCO

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentei mexer aqui mas não consegui progressos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentei mexer aqui mas não consegui progressos

 

Quando me pediram isso achei que faria em "2 palitos", porém na prática deu um nó.. sr

abraços

to tentando tb se conseguir algo publico aqui .

Valeu pela Ajuda

Marco

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.