Если вы используете DateTime? Обнуляемый тип, то вы можете использовать свойство hasValue, чтобы проверить, является ли оно пустым. Если вы используете DateTime, то я считаю, что по умолчанию используется минимальное значение DateTime.MinValue, которое можно легко проверить. MinValue - это что-то безумное, например год 1 января 0001, поэтому имеет смысл, что SQL не понравится
Если вы берете что-то из базы данных, то стандартная проверка на ноль работает нормально.