我们正在考虑为我们的一些表实现双时间解决方案,因为它们必须记录应用程序时间和系统时间。
我知道 SQL 2016 仅对系统时间组件具有原生支持,因此我们会将表转换为临时表并修改我们现在拥有的内容以创建功能齐全的双时间解决方案。
我的问题是关于一致性。时态表的系统时间结束日期组件设置为 9999-12-31 23:59:59.9999999,所以我认为将我们的应用程序/有效时间结束日期也设置为 9999-12- 是个好主意31 23:59:59.9999999。
但是,有人问我“为什么我们不能将其设置为 NULL 以表示主表中的句点没有结束?”
那为什么呢?为什么 MS 选择使用 9999-12-31 23:59:59.9999999 而不是 NULL?
是否像使查询(可能)更容易编写一样简单?我猜 BETWEEN 对两个实际日期值的效果更好,但我想不出更多。