Преобразование datetime2 типа данных к типу данных datetime заканчивается значение из диапазона

Какие ошибки вы получаете? Это во время установки grpc.so или он установлен, но скрипт не может его загрузить? Кроме того, по приведенной вами ссылке «CentOS / RHEL 6» не поддерживается.

356
задан ΩmegaMan 5 January 2018 в 05:01
поделиться

4 ответа

Какие даты у вас в столбце?

Все ли они вписываются в диапазон типа?


Кстати, правильный способ получить Объект типа для конструктора DataColumn - это ключевое слово typeof , которое на несколько порядков быстрее.

Следовательно, чтобы создать столбец, вы должны написать

new DataColumn("myDate", typeof(DateTime))
]
58
ответ дан 23 November 2019 в 00:21
поделиться

Проблема с наследованным атрибутом даты и времени

Это сообщение об ошибке, часто показывал, когда не допускающее NULL-значения поле даты имеет пустой указатель значения в, вставляют/обновляют время. Одной причиной может быть наследование.

, Если Ваша дата, наследовались базовому классу, и Вы не делаете отображение, которое не считает EF, это - значение.

Для получения дополнительной информации: https://weblogs.asp. net/manavi/inheritance-mapping-strategies-with-entity-framework-code-first-ctp5-part-3-table-per-concrete-type-tpc-and-choosing-strategy-guidelines

0
ответ дан 23 November 2019 в 00:21
поделиться

Самым простым было бы изменить вашу базу данных, чтобы использовать datetime2 вместо datetime. Совместимость работает отлично, и вы не получите ошибок.

Вы все равно захотите провести несколько тестов ...

Ошибка, вероятно, связана с тем, что вы пытаетесь установить дату на год 0 или что-то в этом роде - но все зависит от того, где вы можете что-то менять.

6
ответ дан 23 November 2019 в 00:21
поделиться

И DATETIME , и DATETIME2 сопоставлены с System.DateTime в .NET - вы не можете выполнить «преобразование», поскольку это действительно тот же тип .NET.

См. Страницу документации MSDN: http://msdn.microsoft.com/en-us/ library / bb675168.aspx

Есть два разных значения для « SqlDbType » для этих двух - можете ли вы указать их в своем определении DataColumn ?

НО: в SQL Сервер, поддерживаемый диапазон дат сильно отличается.

DATETIME поддерживает от 1753/1/1 до «eternity» (9999/12/31), а DATETIME2 поддерживает от 0001/1/1 до вечность.

Итак, что вам действительно нужно сделать, так это проверить год даты - если он раньше 1753 года,вам нужно изменить его на что-то ПОСЛЕ 1753, чтобы столбец DATETIME в SQL Server обработал его.

Marc

152
ответ дан 23 November 2019 в 00:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: