繁体   English   中英

比较 LINQ 和 C# 中的日期

[英]Comparing Dates in LINQ and C#

我有一个 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'

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

如何使用 LINQ 只比较日期,而不是时间戳

如何比较 LINQ 中的日期?

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

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

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

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

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

运行 SQL 探查器(如果您有 MS SQL 2005 或更高版本)并检查执行了哪些查询。 或者尝试显示您生成的 SQL 和/或结果的Linq2Sql 可视化工具

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM