DATETIME.NOW SOMENTE DATA

 Tópico anterior Próximo tópico Novo tópico

DATETIME.NOW SOMENTE DATA

C#

 Compartilhe  Compartilhe  Compartilhe
#484637 - 26/09/2018 08:54:19

PERCIFILHO
MATAO [SP]
Cadast. em:Dezembro/2009


Bom dia, pessoal!
Estou fazendo uma consulta a uma tabela para saber se existem aniversariantes na data atual, quando o usuário abrir o sistema.

DateTime dataAtual = DateTime.Now;
var lista = db.Participante.Where(x => x.DataNascimento == dataAtual && x.TipoParticipante == "CLIENTE").ToList();


O meu problema é que o campo DataNascimento (tipo DateTime) e está gravado na tabela 26/09/2018, por exemplo.
Só que a variável dataAtual está 26/09/2018 08:54:23. Portanto na hora de comparar as datas, não me retorna nenhum registro e eu tenho registros nesta data (26/09/2018).

Como faço para que a variável dataAtual venha somente com a data, sem a hora?

____________________________________________________
Você sabe que alguém te ama não pelo que ele fala, mas pelo o que faz.
O amor não sobrevive de teorias.




Resposta escolhida #484639 - 26/09/2018 09:15:32

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Se DataNascimento for mesmo DateTime:

var lista = db.Participante.Where(x => (x.DataNascimento.Day == dataAtual.Day && x.DataNascimento.Month == dataAtual.Month) && x.TipoParticipante == "CLIENTE").ToList();


Você precisa comparar dia e mês, porque ano atual nunca vai bater com a data atual. Também coloquei esses critérios entre parênteses pois precisam ser vistos como um só produto de operação lógica.

_______________________________________________________________________
Gostaria de ter seu sistema Desktop "traduzido" para uma interface web? Podemos conversar...
Virei Oráculo!
The end is nigh, be ready for the nukes!


#484640 - 26/09/2018 09:29:15

PERCIFILHO
MATAO [SP]
Cadast. em:Dezembro/2009


Citação:
Você precisa comparar dia e mês, porque ano atual nunca vai bater com a data atual.

Que burrice a minha, .
Sim, DataNascimento é DateTime.
Apenas uma pequena correção no seu código, mas funcionou:

var lista = db.Participante.Where(x => (x.DataNascimento.Value.Day == dataAtual.Day &&
x.DataNascimento.Value.Month == dataAtual.Month) && x.TipoParticipante == "CLIENTE").ToList();


Obrigado mais uma vez Kerplunk.

____________________________________________________
Você sabe que alguém te ama não pelo que ele fala, mas pelo o que faz.
O amor não sobrevive de teorias.




 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por PERCIFILHO em 26/09/2018 14:17:06