sql-server - 子句之间的临时表 - 包含不应该包含的行?
问题描述
我有一个 SQL Server 2016 时态表。我执行了一个可以在下面看到的查询以及结果。我很好奇为什么包含以绿色突出显示的行。ValidFrom 值出现在“2018 年 7 月 12 日 19:16:00”的开始日期之前,而 ValidTo 出现在“2018 年 7 月 12 日 19:30:00”的结束日期之后。
我对 BETWEEN / AND 的理解可能是不正确的,它会发现在两个时间点之间修改的所有行。
解决方案
时态表上的 BETWEEN 子句显示在选定时间范围内处于活动状态的那些行。用更传统的术语来说,满足此条件的行集:
WHERE StartTime <= <EndDateTime>
AND EndTime > <StartDateTime>
如您所见,这不需要实际的时间戳在您的 BETWEEN 日期内。
推荐阅读
- reactjs - 在基于 Material-UI 的组件中模拟道具 - Jest 和 React-Testing-Library
- flutter - Flutter StatefulWidget 无限次重建
- c# - 有没有办法从内存中获取修改后的字符串?
- kotlin - 在 Kotlin 中为两个以上的房间实体创建关系
- jenkins - Jenkins Pipeline - attachmentsPattern(外部工作区)
- c++ - 具有唯一指针的 set 函数给出错误 c2280
- c# - 具有 CancellationTokenSource 的通道在处理后具有超时内存泄漏
- css - CSS中与容器相同的列宽仅与子项的组合宽度一样宽
- c++ - 浏览器中使用 UE4 的套接字连接失败
- cassandra - 当我将小型 SSTBLS 流式传输到 Cassandra 4-rc1 时,我得到“流失败”。任何解决方法