概述:
我有一个SQL数据库表,其中包括每行(事件)的开始和结束日期,格式为时间戳。
目标:
显示给定周的事件,其中包括在该周内开始和结束的事件,但也可以在该周内发生(其开始/结束日期可以在该周内或在该周之前开始和之后结束)。预期结果示例:
- 考虑到7月16日至7月22日的一周,结果将包括以下事件:
- 7月16日、7月19日或7月22日开始和结束
- 从7月10日到7月19日
- 从7月19日到7月26日
- 从7月4日到7月30日
我尝试过使用BETWEEN
和start > {$week_start} AND end < {$week_end}
的查询,但这两种查询都不能解释“重叠”日期。
Question是否可以编写一个包含所有这些场景的查询?
FWIW -如果有更好的解决方案,我愿意用时间戳以外的东西来写日期:)
1条答案
按热度按时间ryhaxcpt1#
你要找的逻辑是
开始<= {$week_end}和结束>= {$week_start}