Not nullable overlap
(x.StartDate <= y.EndDate && x.EndDate >= y.StartDate)
Nullable overlap
(x.StartDate ?? y.EndDate <= y.EndDate ?? x.StartDate) && (x.EndDate ?? y.StartDate >= y.StartDate ?? x.EndDate)
Not nullable overlap
(x.StartDate <= y.EndDate && x.EndDate >= y.StartDate)
Nullable overlap
(x.StartDate ?? y.EndDate <= y.EndDate ?? x.StartDate) && (x.EndDate ?? y.StartDate >= y.StartDate ?? x.EndDate)