Подтвердить что ты не робот

Преобразование типа данных datetime2 в тип данных datetime приводило к выходу за пределы диапазона?

Я работаю над приложением, которое содержит datepicker, и если я установлю время в этом сборщике на очень старое значение или далеко в будущем, когда я попытаюсь сохранить это значение в базе данных, сервер выбросит это исключение, в чем причина из этого?

Преобразование типа данных datetime2 в тип данных datetime привела к превышению значения вне диапазона. Заявление завершено.

4b9b3361

Ответ 1

DateTime имеет диапазон: 1 января 1753 года, 31 декабря, 9999

DateTime2 имеет диапазон: 0001-01-01 - 9999-12-31

Итак, если вы вводите дату до 1753, вы получите эту ошибку, если поле в таблице имеет тип DateTime.

Ответ 2

Entity Framework добавит дату по умолчанию для поля значения {01/01/0001 00:00:00}, и это выходит за рамки SQL Date Generation. Чтобы заставить его работать, нам нужно попросить EF не генерировать дату по умолчанию, мы можем сделать его нулевым, выполнив следующее в Модели этого класса.

В этом случае для поля LastLoggedIn по EntityFramework генерируется значение по умолчанию. Если это поле в дате может принимать нулевое значение, это означает, что мы можем сделать его нулевым, выполнив следующее в модели

 [Display(Name = "LastLoggedIn")]
        public DateTime? LastLoggedIn { get; set; }

Ответ 3

Products prd = new Products();            
prd.CreatedDate = DateTime.Now;

Вы можете добавить, как указано выше