代码之家  ›  专栏  ›  技术社区  ›  Randy Minder

子句行之间的时态表包括在内,不应该包括吗?

  •  2
  • Randy Minder  · 技术社区  · 7 年前

    我有一个SQL Server 2016临时表。我执行了一个可以在下面看到的查询,以及结果。我很好奇为什么包括用绿色突出显示的行。validFrom值出现在“7/12/2018 19:16:00”开始日期之前,validTo出现在“7/12/2018 19:30:00”结束日期之后。

    我对between/and(可能不正确)的理解是,它发现在两个时间点之间修改的所有行。

    .

    我对between/and的理解可能不正确,它发现在两个时间点之间修改了所有行。

    1 回复  |  直到 7 年前
        1
  •  2
  •   Laughing Vergil    7 年前

    时间表上的between子句显示在选定时间段内处于活动状态的行。在更传统的术语中,满足此条件的行集:

    WHERE StartTime <= <EndDateTime> 
        AND EndTime > <StartDateTime>
    

    正如你所看到的,这不需要一个实际的时间戳在你的两个日期之间。