2014-11-13 3 views
0

Прочитал ряд сообщений об этой проблеме, но не нашел ничего, что сработает.Преобразование datetime2 в дату и время за пределами допустимого диапазона

Наша база данных SQL имеет поле настроить таким образом (тип данных из datetime)

enter image description here

Соответствующая модель свойство имеет следующие объявления

[DisplayName("Effective Date")] 
    [Column(TypeName = "DateTime")] 
    [DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)] 
    public DateTime? EffectiveDate { get; set; } 

Но если ввести дату от 11/11/1111 При выполнении моей программы появляется следующая ошибка: DbContext.SaveChanges()

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

Я не знаю и не нашел каких-либо спецификаций диапазона в нашем проекте ASP MVC или в таблице SQL. Любая помощь очень ценится.

ответ

5

Вы указали тип столбца, как:

[Column(TypeName = "DateTime")] 

Это будет отображаться на Dateime type колонки в сервере SQL, and not Datetime2.

DateTime имеет действующий диапазон от 1 января 1753 года до 31 декабря 9999 года, поэтому ваше значение 11/11/1111 выходит за пределы допустимого диапазона.

Сообщение об ошибке включает в себя datetime2, и это должно быть предоставлено значением 11/11/1111, которое подпадает под datetime2.

+0

Есть ли что-то иное, чем ручная процедура проверки, которая будет работать для этого? – NealR

+0

@NealR, если вам нужно хранить значения за пределами указанного диапазона и иметь возможность изменять тип данных столбца, вы можете сделать его «DateTime2». – Khan

+0

Вы имеете в виду в базе данных SQL, правильно? – NealR

2

диапазон типа DateTime обработки данных для MSSQL является January 1, 1753, through December 31, 9999

http://msdn.microsoft.com/en-us/library/ms187819.aspx

сообщение об ошибке с указанием использования datetime2 немного вводит в заблуждение, но в конечном счете, проблема в том, что вы пытаетесь использовать дату, находится вне диапазона типа данных DateTime.

Смежные вопросы