c# - 在 LINQ 中比较过去的日期

标签 c# linq datetime

我必须编写一个 LINQ 语句来查找过去 90 天内某个项目在数据库中出现的次数。这很简单,但他们希望查看 1-30 天、31-60 天和 61-90 天的数据。

我目前正在做的是创建一个包含四组数据的模型,获取所有唯一 SKU 的列表,然后查找它们在数据库中出现的次数。

我的问题是日期范围。我正在创建新的 DateTime 对象并向它们添加负数天,并且我正在尝试使用它来比较范围。我不知道如何说这样的话:

编辑日期介于(-30 天)和(-60 天)之间。

我不能为此使用 SP。必须有一种更简单的方法。也许使用一个时间跨度并看看它是否落在该跨度内?我不知道。我很少与日期打交道。

最佳答案

类似于:

DateTime today = DateTime.Today;
DateTime minusThirty = today.AddDays(-30);
DateTime minusSixty = today.AddDays(-60);

// Normally I wouldn't use a query expression for just a single where clause,
// but I assume you want more...
var query = from item in db.Table
            where item.Date >= minusSixty && item.Date < minusThirty
            select item;

可能想要<=>相反 - 你应该自己解决这个问题。然而,您几乎肯定希望 one 绑定(bind)为包容性,one 绑定(bind)为排他性,并一致地使用它们 - 这样一来,任何项目都不会出现在多个桶中。

关于c# - 在 LINQ 中比较过去的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7363180/

相关文章:

c# - Entity Framework 多对多,有 2 个表

c# - 运算符 '??' 不能应用于类型 'System.Guid?' 和 'string' 的操作数

c# - ASP.net Linq 查询 InvalidOperationException : The class '' has no parameterless constructor

php - DateTime 对象上的不同 timezone_types

c# - SSDT 项目 + 集成/端到端测试 + TearDown

c# - 无法将类型 'Program.Data.View' 隐式转换为 System.linq.iqueryable<Program.Data.View>。

c# - 为什么 Linq GroupBy 在 OrderBy 解散订单操作之后?

c# - 将本地时间(10 位数字)转换为可读的日期时间格式

c# - 显示日期和时间选择器的 Asp.Net 4 WebControl

c# - 如何为 Func 创建最小起订量模拟