【发布时间】:2020-11-14 07:44:55
【问题描述】:
我最近遇到了这个问题,想知道我是否采取了正确的方法。 想象一张有两列日期的表格,一列代表某事的开始,另一列代表某事的结束。 我们称它们为 VALID_FROM 和 VALID_TO。作为输入你给它START和END。 在图片中,第一条“线”代表时间线,任何穿过框的线似乎都是有效数据。 底层线是可能的日期星座,而线的左端始终是 VALID_FROM,而右端始终是 VALID_TO。 以菱形结尾的行有一个固定的日期,如果不是直到无穷大(你可以在这里认为一个空值)。
我现在采取的方法是检查六个案例:
- 从无穷到无穷:
- VALID_FROM = null 和 VALID_TO = null
- 从无穷大到固定VALID_TO:
- VALID_FROM = null 且 VALID_TO >= START
- 从固定 VALID_FROM 到无穷大:
- VALID_TO = null 和 VALID_FROM END
- VALID_FROM 小于 START,因此 VALID_TO 必须大于 START:
- VALID_FROM START 和 VALID_TO > START
- VALID_TO 大于 END,因此 VALID_FROM 必须小于 END:
- VALID_FROM >= END 和 VALID_TO END
- VALID_FROM 和 VALID_TO 介于 START 和 END 之间
- VALID_FROM >= START 和 VALID_TO END
如果您需要任何信息,请告诉我。你认为我可能的星座是完整的吗? 如果您有任何想法,请分享您的想法,我会对它感兴趣。
【问题讨论】:
-
用您正在使用的数据库标记您的问题。示例数据和期望的结果作为文本表将是一个很大的帮助 - 一个 db/sql 小提琴是值得赞赏的。