Usuário com melhor resposta
aniversariantes

Pergunta
-
Respostas
-
Boa tarde,
Experimente mais ou menos dessa forma:
where DATEDIFF(DAY, CURRENT_TIMESTAMP, DATEADD(YEAR, YEAR(CURRENT_TIMESTAMP) - YEAR(DataNasc), DataNasc)) = 2
Espero que ajude.
Assinatura: http://www.imoveisemexposicao.com.br
- Marcado como Resposta Xarp2 segunda-feira, 16 de março de 2015 20:59
-
José!
Se a data de nascimento conter o ano, tenta a query abaixo:
-- Exemplo select * from Pessoa where DATEDIFF(d, DATEADD(qq, DATEDIFF(qq, 0, DataNascimento), 0), DataNascimento) - DATEDIFF(d, DATEADD(qq, DATEDIFF(qq, 0, GETDATE()), 0), GETDATE()) = 2 -- Teste select DATEDIFF(d, DATEADD(qq, DATEDIFF(qq, 0, cast('1977/03/18' as date)), 0), cast('1977/03/18' as date)) - DATEDIFF(d, DATEADD(qq, DATEDIFF(qq, 0, GETDATE()), 0), GETDATE())
É meio louco, mas testei rapidinho e funcionou.
Se a sua data não possui o ano, a resposta do Willian resolverá.
Bom trabalho!
- Marcado como Resposta Xarp2 segunda-feira, 16 de março de 2015 20:59
-
Faltou informar o sinal de menos para calcular MENOS 2 dias para ser antes do dia do aniversario, Lembrando que também se salvou o aniversario com o ano de nascimento essa select não ira funcionar
select * from pessoas where datanascimento=DateAdd(day, -2,GetDate());
Nao... Isso vai mostrar os aniversariantes de dois dias atras (voce subtrai a data de hoje).
O que ele quer é pegar os aniversariantes de dois dias pra frente (data de hoje mais 2 dias)
Mas vc tem razao pra o ano.. a forma correta é
select * from pessoas where datepart(day,datanascimento)=datepart(day,DateAdd(day, 2,GetDate())) and datepart(month,datanascimento)=datepart(month,DateAdd(day, 2,GetDate())) ;
Att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
- Editado William John Adam Trindade segunda-feira, 16 de março de 2015 18:32
- Marcado como Resposta Xarp2 segunda-feira, 16 de março de 2015 20:59
Todas as Respostas
-
deste jeito:
select * from pessoas where datanascimento=DateAdd(day, 2,GetDate());
att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
-
deste jeito:
select * from pessoas where datanascimento=DateAdd(day, 2,GetDate());
att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
select * from pessoas where datanascimento=DateAdd(day, -2,GetDate());
Uma imagem vale mais do que mil palavras, mas ocupa 3 mil vezes mais espaço em disco
-
Boa tarde,
Experimente mais ou menos dessa forma:
where DATEDIFF(DAY, CURRENT_TIMESTAMP, DATEADD(YEAR, YEAR(CURRENT_TIMESTAMP) - YEAR(DataNasc), DataNasc)) = 2
Espero que ajude.
Assinatura: http://www.imoveisemexposicao.com.br
- Marcado como Resposta Xarp2 segunda-feira, 16 de março de 2015 20:59
-
José!
Se a data de nascimento conter o ano, tenta a query abaixo:
-- Exemplo select * from Pessoa where DATEDIFF(d, DATEADD(qq, DATEDIFF(qq, 0, DataNascimento), 0), DataNascimento) - DATEDIFF(d, DATEADD(qq, DATEDIFF(qq, 0, GETDATE()), 0), GETDATE()) = 2 -- Teste select DATEDIFF(d, DATEADD(qq, DATEDIFF(qq, 0, cast('1977/03/18' as date)), 0), cast('1977/03/18' as date)) - DATEDIFF(d, DATEADD(qq, DATEDIFF(qq, 0, GETDATE()), 0), GETDATE())
É meio louco, mas testei rapidinho e funcionou.
Se a sua data não possui o ano, a resposta do Willian resolverá.
Bom trabalho!
- Marcado como Resposta Xarp2 segunda-feira, 16 de março de 2015 20:59
-
Faltou informar o sinal de menos para calcular MENOS 2 dias para ser antes do dia do aniversario, Lembrando que também se salvou o aniversario com o ano de nascimento essa select não ira funcionar
select * from pessoas where datanascimento=DateAdd(day, -2,GetDate());
Nao... Isso vai mostrar os aniversariantes de dois dias atras (voce subtrai a data de hoje).
O que ele quer é pegar os aniversariantes de dois dias pra frente (data de hoje mais 2 dias)
Mas vc tem razao pra o ano.. a forma correta é
select * from pessoas where datepart(day,datanascimento)=datepart(day,DateAdd(day, 2,GetDate())) and datepart(month,datanascimento)=datepart(month,DateAdd(day, 2,GetDate())) ;
Att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
- Editado William John Adam Trindade segunda-feira, 16 de março de 2015 18:32
- Marcado como Resposta Xarp2 segunda-feira, 16 de março de 2015 20:59