2015-05-08 2 views
1

Многие сталкиваются с тем, что SQL Server 2005 не поддерживает datetime2. Мне было интересно, могу ли я добавить его как пользовательский тип данных.Создайте datetime2 как пользовательский тип данных в SQL Server 2005

Я создал пользовательский тип с именем datetime2, так что все сделано.

Теперь мне нужно установить минимальное значение даты, но возможно ли это, так как пользовательский тип основан на типе datetime?

ответ

0

Чтобы преодолеть это, я изменил типы данных в базе данных на varchar. Затем я изменил хранимую процедуру для преобразования между датой, введенной в форму поиска, и значениями в базе данных. Это уродливое решение, и я должен «вручную» сравнивать данные за год, месяц и день, но он работает в конце с минимальными усилиями. Клиент счастлив, разработчик ... на заборе :-)

3

Короткий ответ: Нет, вы не можете.

Кроме того, DATETIME2 обладает дополнительными свойствами относительно дробной точности. Я настоятельно рекомендую любому администратору базы данных SQL Server для миграции своего сервера как минимум на 2008 год, чтобы открыть богатые функции, недоступные в 2005 году. Я не вижу никакого преимущества в использовании того, что в значительной степени устарело и старше 10 лет , Тем более, что вы прибегаете к созданию UDT, которые потенциально могут создать всевозможные хаки RDBMS в будущем.

+0

Я согласен, к сожалению, я работаю консультантом и не имею большого контроля над базой данных. Новый проект должен начать переделывать это приложение ... но на данный момент я застрял с SQL Server 2005. –

+0

Из интереса, почему вы хотите пройти мимо 1753-01-01? Я не знал, что у Black Beard была учетная запись в интернет-банке;) –

+0

, потому что приложение ищет архив сирот, оставленных их родителями с этого периода времени. Он отображает сканы из книги, содержащей все данные, где и когда они были найдены и т. Д. –

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