Представление понятия «до вечности» или «до дальнейшего уведомления» является сомнительным предложением.
Собственно реляционная теория говорит, что нет такой вещи, как нуль, поэтому вы обязаны иметь любую таблицу, в которой она разбита на две части: одна часть со строками, для которых известны дата окончания / время окончания, а другая - строки, для которых время окончания еще не известно.
Но (как и нулевое значение) разбиение таблиц на две также сделает беспорядок при написании вашего запроса. Представления могут в некоторой степени соответствовать частям, предназначенным только для чтения, но обновления (или написание INSTEAD OF на вашем представлении) будут непростыми, несмотря ни на что, и могут отрицательно повлиять на производительность, несмотря ни на что).
Наличие нулевого представления "время окончания еще не известно" сделает обновление немного "легче", но запросы чтения запутаются со всеми конструкциями CASE ... или COALESCE ..., которые вам понадобятся.
Использование теоретически правильного решения, упомянутого dportas, становится беспорядочным во всех тех случаях, когда вы хотите «извлечь» DATE из DATETIME. Если текущим значением DATETIME является «конец (представляемого) времени (как вы говорите, через миллиарды лет)», то это не просто случай вызова функции экстрактора DATE для этого значения DATETIME, поскольку также хотите, чтобы экстрактор DATE выдавал «конец представимых DATE» для вашего случая.
Плюс, вы, вероятно, не хотите показывать "отсутствующий конец времени" как значение 9999-12-31 в вашем пользовательском интерфейсе. Поэтому, если вы используете «реальное значение» конца времени в вашей базе данных, вам придется немного позаботиться о том, чтобы это значение нигде не отображалось в вашем пользовательском интерфейсе.
Извините, что не могу сказать, что есть способ остаться в стороне от всех беспорядков. Единственный выбор, который у вас есть, - какой беспорядок закончиться.