Самая ранняя дата, которая может быть сохранена в поле даты и времени SQL, зависит от типа данных, который вы используете:
datetime:
1753-01-01 through 9999-12-31
smalldatetime:
1900-01-01 through 2079-06-06
date, datetime2 and datetimeoffset:
0001-01-01 through 9999-12-31
Для более точных деталей см. https://msdn.microsoft.com/en-GB/library/ms186724.aspx#DateandTimeDataTypes
эпоха полезна, если вы конвертируете числа в даты, но не имеет значения, если вы храните даты как даты.
Если вы не хотите правильно обращаться с нулями, простой ответ - выбрать дату, которая, как вы знаете, будет раньше ваших данных, и жестко закодировать ее в своем запросе. cast('1900-01-01' as datetime)
будет работать в большинстве случаев.
Использование чего-то вроде cast(0 as datetime)
дает тот же результат, но затеняет то, что вы сделали в своем коде. Кто-то, поддерживая его, интересуясь, откуда взялись эти странные старые даты, сможет быстрее определить жестко закодированную дату.