我有一个
daterange
,两个月后就包含在内了。
所以我有一个数据集:
1 2022-10-01 2022-10-31
2 2022-11-01 2022-11-30
3 2022-12-01 2022-12-31
4 2023-01-01 2023-01-31
5 2023-02-01 2023-02-28
6 2023-03-01 2023-03-31
7 2023-04-01 2023-04-30
8 2023-05-01 2023-05-31
9 2023-06-01 2023-06-30
10 2023-07-01 2023-07-31
我有
daterange
startdate
2023-05-15, enddate
2023-06-15。
有了这个
daterange
我想得到第8行,即2023-05-01和2023-05-31。而不是之前的其余行。根据范围,只有一个或多个
我一直在尝试使用 Linq 查询来实现此目的,但没有结果。
var a = new QueryFactory().Period.Where(x => x.Enddate <= request.ReferenceDate);
我想要第 8 行的原因是因为那是“已完成的月份”,如果我们将
endDate
作为 referenceDate
,则 6 月尚未完成。
如果我理解正确的话,你需要排除
您还想排除六月,因为它结束得太晚了。
但是可以包含在开始日期之前开始的记录。
如果是这样,这就变成了
l.Where(x => (x.Startdate <= end ) && // Excludes rows that start too late
(x.Enddate >= start) && // Excludes rows that end too early
(x.Enddate <= end ) // Excludes rows that end too late
) ;