我有一个SQL Server 2016时态表。我执行了一个查询以及结果,如下所示。我很好奇为什么包含绿色突出显示的行。 ValidFrom值出现在“ 7/12/2018 19:16:00”的开始日期之前,而ValidTo出现在“ 7/12/2018 19:30:00”的结束日期之后。
我对BETWEEN / AND的理解可能是不正确的,因为它会找到在两个时间点之间修改的所有行。
答案 0 :(得分:2)
时态表上的BETWEEN子句显示在选定时间范围内处于活动状态的那些行。用更常规的术语来说,符合此条件的行设置为:
WHERE StartTime <= <EndDateTime>
AND EndTime > <StartDateTime>
如您所见,这并不需要实际时间戳记在您的BETWEEN日期之间。