我的问题与Algorithm to detect overlapping periods相同
但在我的情况下,句号可以 unbouded (无结束日期,即NULL)。
我无法找到一种优雅的方式。
答案 0 :(得分:2)
对于无限结束日期,您还可以执行以下操作:
a.end = a.end == NULL ? MAXDATE : a.end;
b.end = b.end == NULL ? MAXDATE : b.end;
bool overlap = a.start < b.end && b.start < a.end;
或者这可行:
bool overlap = (a.start < b.end || b.end == NULL) && (b.start < a.end || a.end == NULL);