C# 仅用日期搜索

C# 仅用日期搜索,c#,asp.net-mvc,datetime,C#,Asp.net Mvc,Datetime,我的数据库中有issutime表,其格式如下: 当我按确切的日期和时间执行搜索时,我会得到结果。但我想要的是只使用日期执行搜索。例如:2014-02-28应返回该日期的所有结果 这是我的代码: var date = Convert.ToDateTime(search); return View(db.newsletter.Where(x => x.issuetime == date).ToList()); 有什么想法吗?使用DateTime类的Date属性 var date = Con

我的数据库中有issutime表,其格式如下:

当我按确切的日期和时间执行搜索时,我会得到结果。但我想要的是只使用日期执行搜索。例如:2014-02-28应返回该日期的所有结果

这是我的代码:

var date = Convert.ToDateTime(search);
return View(db.newsletter.Where(x => x.issuetime == date).ToList());

有什么想法吗?

使用DateTime类的Date属性

var date = Convert.ToDateTime(search);
return View(db.newsletter.Where(x => x.issuetime.Date == date.Date).ToList());

使用DateTime类的Date属性

var date = Convert.ToDateTime(search);
return View(db.newsletter.Where(x => x.issuetime.Date == date.Date).ToList());

仅使用日期搜索时,它会将日期的时间戳更改为00:00:00:000。 例如,对于2014-02-28,它会查找2014-02-28 00:00:00:000,但您要查找的是所有issuetime相等、大于2014-02-28 00:00:00:000且小于2014-02-29 00:00:00:000的记录。 如果Michael的解决方案对您不起作用,您可以尝试类似的方法

var date1=DateTime.Parse(date + " " + "00:00:00 AM")
var date2=DateTime.Parse(date + " " + "11:59:59 PM")
return View(db.newsletter.Where(x => x.issuetime>= date1 && x.issuetime<= date2).ToList());
var date1=DateTime.Parse(date++“00:00:00am”)
var date2=DateTime.Parse(date++“11:59:59 PM”)

返回视图(db.newsletter.Where(x=>x.issuetime>=date1&&x.issuetime当您仅使用日期搜索时,它会将日期的时间戳更改为00:00:00:000。 例如,对于2014-02-28,它会查找2014-02-28 00:00:00:000,但您要查找的是所有issuetime相等、大于2014-02-28 00:00:00:000且小于2014-02-29 00:00:00:000的记录。 如果Michael的解决方案对您不起作用,您可以尝试类似的方法

var date1=DateTime.Parse(date + " " + "00:00:00 AM")
var date2=DateTime.Parse(date + " " + "11:59:59 PM")
return View(db.newsletter.Where(x => x.issuetime>= date1 && x.issuetime<= date2).ToList());
var date1=DateTime.Parse(date++“00:00:00am”)
var date2=DateTime.Parse(date++“11:59:59 PM”)

返回视图(db.newsletter.Where(x=>x.issuetime>=date1&&x.issuetime这与Kosar的方法类似,但更简单。它还应该正确处理一天中最后一秒发生的事件

var date = Convert.ToDateTime(search).Date;
var nextDay = date.AddDays(1);
return View(db.newsletter
    .Where(x => x.issuetime >= date && x.issuetime < nextDay)
    .ToList());
var-date=Convert.ToDateTime(search.date);
var nextDay=日期。添加天数(1);
返回视图(db.newsletter)
。其中(x=>x.issuetime>=日期和x.issuetime

MichaelDunlap的方法可以在LINQtoSQL中工作,但LINQtoEntities似乎无法处理它(请参阅,但EntityFunctions似乎已被弃用,因此我不建议使用它。

这与Kosar的方法类似,但更简单。它还应正确处理一天中最后一秒发生的事件

var date = Convert.ToDateTime(search).Date;
var nextDay = date.AddDays(1);
return View(db.newsletter
    .Where(x => x.issuetime >= date && x.issuetime < nextDay)
    .ToList());
var-date=Convert.ToDateTime(search.date);
var nextDay=日期。添加天数(1);
返回视图(db.newsletter)
。其中(x=>x.issuetime>=日期和x.issuetime

Michael Dunlap的方法适用于LINQ to SQL,但LINQ to Entities似乎无法处理它。Entity Framework具有TruncateTime(请参阅,但EntityFunctions似乎已被弃用,因此我不建议使用它。

@enolŞahin:这将适用于LINQ to SQL。也许您应该包括有关LINQ提供程序的信息(实体框架?)。