SqlDateTime переполнение. Должно быть между 01.01.1753 12:00:00 и 31.129999 11:59:59 - PullRequest
3 голосов
/ 23 февраля 2012

У меня есть таблица подписчиков в БД, которая содержит поле DateCreate со значением по умолчанию GetDate ().Когда я пытаюсь добавить новую запись в таблицу через Entity Framework:

        Subscribers subs = new Subscribers();
        subs.Email = email;
        subs.DateCreate = DateTime.Now;
        DataBase.DBContext.AddToSubscribers(subs);
        DataBase.DBContext.SaveChanges();

, возникает исключение: переполнение SqlDateTime.Должно быть между 01.01.1753 12:00:00 и 31.12.9999 23:59:59.

Кто может мне помочь?Спасибо.

Ответы [ 3 ]

4 голосов
/ 23 февраля 2012
  1. Убедитесь, что часы вашей машины не в 15 веке; -)
  2. Создайте заново модель.
  3. Если в вашей таблице задано значение по умолчанию, вам не нужно его устанавливатькод.
  4. Попробуйте использовать GETUTCDATE() вместо GETDATE()
  5. Убедитесь, что нет других полей DateTime без значений по умолчанию.
2 голосов
/ 11 марта 2014

Это поздний ответ, но у меня была такая же проблема только сейчас.Причина этой проблемы в том, что у вас есть другая дата в вашей сущности, и по умолчанию (MinValue) для нее будет 1/1/0001.В SQL / Server по умолчанию (MinValue) 1/1/1753 или что-то в этом роде.

Я нашел отличную статью, которая помогла мне, по адресу vfstech.com , в которой предлагается использовать datetime2даты и времени в базе данных, однако это не вариант для меня.Однако он также имеет код, который выполняет перевод в обе стороны.Я быстро создал класс, унаследованный от моего класса сущностей, и использовал его в своем приложении, и это прекрасно решило мою проблему, и мне не пришлось заражать свою бизнес-логику чем-то, что, по моему мнению, Microsoft должно было бы реализовать должным образом с самого начала.

0 голосов
/ 21 августа 2013

Если вы используете Convert.ToDateTime() в коде .Net, проверьте настройки календаря размещенного на сервере приложения, в основном часовой пояс и формат короткой даты

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...