Asp.net mvc 如何在Linq中比较日期时间

Asp.net mvc 如何在Linq中比较日期时间,asp.net-mvc,linq,sql-server-2012,Asp.net Mvc,Linq,Sql Server 2012,我有这样一个SQL查询: SELECT date FROM cases WHERE date BETWEEN '11/01/2015' AND '11/15/2015' 我想在使用Linq的MVC控制器中做同样的事情。所以我得到的是: DateTime today = DateTime.Today; var case = _dataContext.tb_cases; var result=(from c in case select new

我有这样一个SQL查询:

SELECT date FROM cases
 WHERE  date BETWEEN '11/01/2015' AND '11/15/2015'  
我想在使用Linq的MVC控制器中做同样的事情。所以我得到的是:

DateTime today = DateTime.Today;
var case = _dataContext.tb_cases;
var result=(from c in case
            select new
            {
            date=c.date
            ...
            }).Where(p=>p.date >= new DateTime(2015,11,01)&& p.date < today).ToList();
return Json(result, JsonRequestBehavior.AllowGet);
但不知何故,在比较新的DateTime2015,11,01和今天之间的日期时,我无法得到任何结果,并且在数据库中使用SQL查询时确实返回了数据。我还想将日期格式设置为与SQL查询中的这两种格式相同

有人能帮我解决这个问题吗

多谢各位

凯文

试试:

Where(p=> (DateTime.Compare(p.date,DateTime.Parse("2015/11/01").Date))<0 && (DateTime.Compare(p.date,DateTime.Today)<0)).ToList();

要知道如何使用DateTime.Parse check。

您是说您没有得到任何结果,还是只是没有得到您期望的所有结果?我发现调试此类问题的最佳方法是运行sql探查器并捕获发送到sql server的sql。然后将其与您自己的进行比较,找出结果不同的原因。不是最快的方法,但每次对我都有效。此外,我90%确信,如果你试图提出一个复制结果的最小程序,你会在完成之前发现你的问题@Stephen Muecke我没有任何结果。当我在Sql管理中运行相同的查询时,应该会有一些结果。但不知何故,Linq无法识别日期时间范围,因为我试图在where子句中使用Linq中的其他ID和名称,并成功地返回了我期望的数据。@zespri Linq in控制器返回的日期如下:{11/16/2015 12:00:00 AM}但当我在网页中检查我的Json结果时,它变成了/Date1423807200000/,我甚至不知道Json是如何将日期转换成这种格式的。我想如果我明天才能找到问题所在,我会在一个较小的程序中进行测试。似乎Linq或C不喜欢以这种方式编写代码。。。它说,当我将鼠标移到DateTime.Parse2015/11/01.date上时,与“System.DateTime.CompareSystem.DateTime,System.DateTime”匹配的最佳重载方法具有一些无效参数。您可能需要查看有关如何使用DateTime.Parse的详细信息。检查我在这里提供的链接