当前正在处理t-sql查询,该查询应获取当前会计年度之间所有记录的列表(我们使用4-4-5日历)。 记录的开始和结束日期是06/02/2018,31/07/2020。
我要过滤的日期是:
DECLARE @StartDate DATE = '12-29-2018';
DECLARE @EndDate DATE = '12-31-2019';
where子句中的条件是:
AND
(
(o.Revenue_Start_Date__c >= @StartDate AND o.Revenue_End_Date__c <= @EndDate) OR (o.Revenue_End_Date__c >= @StartDate AND o.Revenue_End_Date__c <= @EndDate)
)
我也尝试过BETWEEN的变体。任何想法,我可能做错了什么,如果它在相应的日期之内,我如何获得所有记录的清单。
答案:
AND ( -- Starts Within range
( o.Revenue_Start_Date__c
BETWEEN @StartDate
AND @EndDate
)
OR -- Ends within range
(
o.Revenue_End_Date__c
BETWEEN @StartDate
AND @EndDate
)
OR -- SPANS Range
(
o.Revenue_Start_Date__c < @StartDate
AND
o.Revenue_End_Date__c > @EndDate
)
)
这似乎刚刚对我有用。