子句之间的时态表-包含不应该包含的行?

时间:2018-07-12 21:33:21

标签: sql-server temporal-tables

我有一个SQL Server 2016时态表。我执行了一个查询以及结果,如下所示。我很好奇为什么包含绿色突出显示的行。 ValidFrom值出现在“ 7/12/2018 19:16:00”的开始日期之前,而ValidTo出现在“ 7/12/2018 19:30:00”的结束日期之后。

我对BETWEEN / AND的理解可能是不正确的,因为它会找到在两个时间点之间修改的所有行。

enter image description here

1 个答案:

答案 0 :(得分:2)

时态表上的BETWEEN子句显示在选定时间范围内处于活动状态的那些行。用更常规的术语来说,符合此条件的行设置为:

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

如您所见,这并不需要实际时间戳记在您的BETWEEN日期之间。

相关问题