我必须编写一个 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/