2009-06-17 7 views
2

Comment ajouter la date est où clause. J'utilise le code suivant.Comment utiliser DateTime dans la clause WHERE (LINQ)?

var opportunites = from opp in this.DataContext.Opportunities 
          join org in this.DataContext.Organizations on opp.OrganizationID 
          equals org.OrgnizationID 
          select new 
          { 
           org.CreatedDate, 
           org.OrganizationName 
          }; 
    if (createdDate != string.Empty) 
     opportunites = opportunites.Where(opp => 
          opp.CreatedDate == Convert.ToDateTime(createdDate)); 

Mais avec ce code, je ne retourne aucun résultat. Je pense que l'erreur est avec l'opérateur ==.

Je pense que je devrais avoir le code comme celui-ci

"where createdDate between" + createdDate + "00:00:00" + and createdDate + "23:59:59" 

Comment archiver cette chose dans LINQ.

Une suggestion?

Répondre

7

Vous pouvez extraire uniquement la partie 'date' d'un DateTime comme suit:

opp.CreatedDate.Date == Convert.ToDateTime(createdDate).Date 
0

Vous pouvez ajouter une nouvelle date au critère, ajoutant simplement 86399 secondes:

DateTime dtFechaIni = Convert.ToDateTime(filter[0]); 
DateTime dtFechaEnd = Convert.ToDateTime(filter[0]).AddSeconds(86399); 

var getInfo = from gI in infEnt.tb_FileManagement_RegistrosArchivo 
       where gI.tb_FileManagement_Archivo.FechaArchivo > dtFechaIni && 
       gI.tb_FileManagement_Archivo.FechaArchivo < dtFechaEnd 
       select gI; 
Questions connexes