如何在WHERE子句(LINQ)中使用DateTime?

时间:2009-06-17 04:41:07

标签: c# linq linq-to-sql

如何添加日期是where子句。我正在使用以下代码。

    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));

但是这个代码我没有回复任何结果。我认为错误是使用== operator。

我想我应该有这样的代码

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

如何在LINQ中存档此内容。

有什么建议吗?

2 个答案:

答案 0 :(得分:7)

您可以按如下方式仅提取DateTime的“日期”部分:

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

答案 1 :(得分:0)

您可以为条件添加新日期,只需添加86399秒:

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;