Мы рассматриваем реализацию битемпорального решения для нескольких наших таблиц, поскольку они должны записывать как время приложения, так и системное время.
Я знаю, что в 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?
Это так просто, как облегчить написание запросов (потенциально)?Я предполагаю, что МЕЖДУ лучше работает с двумя фактическими значениями даты, но я не могу думать о многом другом.