查询SQL表中在范围内开始/结束的日期,以及属于该范围但开始在范围之前/之后的日期
P粉147747637
P粉147747637 2023-07-21 10:17:02
0
1
663

概述:

我有一个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}的查询,但这两种方法都无法考虑到“重叠”日期。

问题:是否有可能编写一个包含所有这些情况的单个查询?

顺便说一句,如果有更好的解决方案,我可以接受使用除时间戳之外的日期格式。

P粉147747637
P粉147747637

全部回复(1)
P粉222320176

你要寻找的逻辑是:

start <= {$week_end} AND end >= {$week_start}

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板