比较LINQ和C#中的日期

时间:2010-05-03 05:13:45

标签: c# linq

我有一个LINQ查询,它检查自今年年初以来是否有任何测试。

var MetersTestedCount = (from n in _mttDomainContext.MTTMeterTests
                              where n.TestDate > DateTime.Parse("1/1/2010")  
                              select n.TestDate).Count();

然而,此查询返回一个空集。我有一个类似的SQL查询,它可以提取一些记录,

USE MeterTestTracking
Select * From MTTMeterTest
WHERE TestDate > '1/1/2010'

我去过以前的帖子。即使相似,仍然没有帮助:

How to compare just the date, not the timestamp using LINQ

How to compare dates in LINQ?

检查LINQ中的日期以返回数据集的正确方法是什么?

4 个答案:

答案 0 :(得分:5)

您是否尝试过创建DateTime实例?:

var MetersTestedCount = (from n in _mttDomainContext.MTTMeterTests
                              where n.TestDate > new DateTime(2010,1,1).Date  
                              select n.TestDate).Count();

答案 1 :(得分:0)

如何明确说明您要转换的日期字符串的格式,即使用

DateTime.Parse("1/1/2010", "dd/MM/YYYY")

答案 2 :(得分:0)

运行SQL分析器(如果您有MS SQL 2005或更高版本)并检查执行了哪些查询。或者尝试Linq2Sql visualizer,它会显示您生成的SQL和/或结果。

答案 3 :(得分:0)

var query = Set()。AsQueryable();
query = query.Where(r =>(DateTime)(r.StartDate)>(DateTime)(obj.StartDate));