Оставьте поле NULL. Не используйте ИЛИ, используйте UNION ALL:
select ... from ... where InTime < sometime and OutTime is > sometime
union all
select ... from ... where InTime < sometime and OutTime is null
Использование магических значений вместо NULL - путь к катастрофе. По крайней мере, он использует больше памяти. Более конкретно, он нарушает семантику NULL при применении ограничений базы данных, при вычислении агрегатов и в приложениях.
Использование OR в запросах вызывает проблемы с производительностью. Optmizer, скорее всего, превратит любой поиск диапазона индекса в сканы. Использование UNION обычно лучше, так как оптимизатор создаст два плана, один оптимальный для NULL, один опимальный для ненулевого, и объединит их.
Если у вас нет индекса для Intime и / или OutTime, тогда запрос все равно будет сканировать, и UNION будет работать хуже, чем OR, но тогда это не тот сценарий, о котором стоит говорить. Вопрос, конечно, в том, как оптимизировать запрос на правильно спроектированном хранилище.