我有一个带有 DateTime 参数的对象列表。
我想使用 LINQ 查询此列表并按日期返回条目但忽略时间部分
所以我想选择在 08-10-2012 的任何时间发生的任何条目。
最佳答案
您可以将此代码段用于内存查询:
var theDate = new DateTime(2012, 08, 10);
var entriesOnTheDate = list.Where(item => item.DateTimeField.Date.Equals(theDate));
要查询 SQL Server 数据源,您可以使用 SqlFunctions.DatePart
提取日、月、年,分别进行比较。
var entriesOnTheDate = dbContext
.EntriesWithDateTimeField
.Where(item => SqlFunctions.DatePart("Year", item.DateTimeField) == 2012
&& SqlFunctions.DatePart("Month", item.DateTimeField) == 8
&& SqlFunctions.DatePart("Day", item.DateTimeField) == 12);
关于c# - 如何在忽略 DateTime 属性的时间部分的同时选择具有 Linq by Date 的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11954773/