让我们调用您的表 Enrollment。
首先.. 我们希望所有在7-01-14 和6-30-15 之间注册的人
Select *
From Enrollment
Where Start_Date Between '7-01-14' and '6-30-15'
And End_Date Between '7-01-14' and '6-30-15'
此外,成员资格必须在该时间跨度内至少存在几个月。
Select *
From Enrollment
Where Start_Date Between '7-01-14' and '6-30-15'
And End_Date Between '7-01-14' and '6-30-15'
And DateDiff (month, Start_Date, End_Date) > 4
但请考虑以下情况:
- 如果有人在“6-25-15”(截止日期前 5 天)注册并活跃了 4 个月会怎样?
- 如果有人在“4-01-14”(开始截止前 3 个月)注册并活跃了 4 个月会怎样?
在这种情况下,您必须对查询进行适当的更改,以便在需要时处理这些情况。
例如,如果 Start_Date OR End_Date 可以在指定的截止日期之间,但成员资格仍需要 4 个月长
Select *
From Enrollment
Where
(
Start_Date Between '7-01-14' and '6-30-15'
OR End_Date Between '7-01-14' and '6-30-15'
)
And DateDiff (month, Start_Date, End_Date) >= 4
但是如果 Start_Date 小于 cutff 的开始,End_Date 大于 cutoff 的结束,并且成员资格仍然需要 4 个月长,该怎么办
Select *
From Enrollment
Where
(
(Start_Date Between '7-01-14' and '6-30-15' OR End_Date Between '7-01-14' and '6-30-15')
OR
(Start_Date < '7-01-14' and End_Date > '6-30-15')
)
And DateDiff (month, Start_Date, End_Date) >= 4