DataColumn - как отличить datetime или datetime2

У меня возникли проблемы с определением типа DateTime DataColumn.

Если я возьму DataTable из SQL 2008, столбец datetime DataColumn может быть datetime или datetime2, но, похоже, нет никакой разницы в C#.

Мне нужно проверить данные перед загрузкой в ​​SQL...

Любые идеи?


person Drammy    schedule 26.05.2011    source источник
comment
вы могли бы сделать что-то, чтобы проверить при чтении, является ли тип SqlDbType.DateTime2. Об изменении типа базы данных на datetime2 не может быть и речи?   -  person IndigoDelta    schedule 26.05.2011
comment
Да, мое решение должно предполагать, что в таблице Sql могут быть любые столбцы и типы данных. Это также может быть база данных SQL 2005 - только дата и время...   -  person Drammy    schedule 27.05.2011


Ответы (2)


Точность и диапазон отличаются от DateTime до DateTime2, вы, вероятно, можете получить проверку из этот пост в блоге.

person Ed Charbeneau    schedule 26.05.2011
comment
Конечно, я понимаю различия типов данных SQL. Моя проблема заключается в том, что свойства С# DataColumn, рожденного из столбца datetime Sql, имеют точно такие же свойства, что и DataColumn, рожденный из столбца datetime2 Sql. Мне нужно найти способ убедиться, что дата действительна для того, что потенциально может быть столбцом datetime Sql. - person Drammy; 27.05.2011

Я решил отказаться от использования свойств DataColumn для чтения схемы таблицы, так как она неточна в нескольких местах (уникальность всегда = false, длина всегда = -1).

Вместо этого я получил определение схемы из представлений Sql INFORMATION_SCHEMA.

Кто-нибудь знает, почему эти свойства бесполезны при чтении схемы DataTable? Они просто не отображают истинную структуру таблицы базы данных...

person Drammy    schedule 26.05.2011