Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 在SQL Server 2005中创建datetime2作为自定义数据类型_Sql Server_Sql Server 2005_Types_Datetime2 - Fatal编程技术网

Sql server 在SQL Server 2005中创建datetime2作为自定义数据类型

Sql server 在SQL Server 2005中创建datetime2作为自定义数据类型,sql-server,sql-server-2005,types,datetime2,Sql Server,Sql Server 2005,Types,Datetime2,很多人都遇到了这样一个事实:SQLServer2005不支持datetime2。我想知道是否可以将其添加为自定义数据类型 我创建了一个名为datetime2的自定义类型,就这样完成了 现在我需要设置最小日期值,但这是否可能,因为自定义类型基于datetime类型?简短回答:不可以 此外,DATETIME2还有关于分数精度的附加属性。我强烈建议任何SQLServerDBA至少将其服务器迁移到2008年,以打开2005年不可用的丰富功能。我不认为使用基本上不推荐的、已经使用了10年以上的东西有什么好

很多人都遇到了这样一个事实:SQLServer2005不支持
datetime2
。我想知道是否可以将其添加为自定义数据类型

我创建了一个名为
datetime2
的自定义类型,就这样完成了


现在我需要设置最小日期值,但这是否可能,因为自定义类型基于
datetime
类型?

简短回答:不可以


此外,DATETIME2还有关于分数精度的附加属性。我强烈建议任何SQLServerDBA至少将其服务器迁移到2008年,以打开2005年不可用的丰富功能。我不认为使用基本上不推荐的、已经使用了10年以上的东西有什么好处。特别是因为您正在尝试创建UDT,这可能会在将来造成各种RDBMS灾难。

为了克服这个问题,我将数据库中的数据类型更改为varchar。接下来,我修改了存储过程,在搜索表单中输入的日期和数据库中的值之间进行转换。这是一个丑陋的解决方案,我必须“手动”比较年、月和日的值,但它最终只需很少的努力就可以工作。客户满意,开发者。。。在篱笆上:-)

我同意,遗憾的是我是一名顾问,对数据库没有太多控制权。一个新项目将开始重新制作此应用程序。。。但目前我仍在使用SQLServer2005。出于兴趣,为什么要超过1753-01-01?我不知道黑胡子有一个网上银行账户;)因为该应用程序搜索的是那段时间被父母遗弃的孤儿的档案。它显示了一本包含所有数据的书的扫描结果,这些数据是在何时何地被发现的,等等。我现在不觉得麻木和愚蠢。作为该项目的顾问,我会让他们立即推动架构更新。听起来他们非常需要它。我用了一个丑陋的补丁。。日期现在是varchars。因此,用于搜索的存储过程包含date和varchar之间的一些转换魔法。它不漂亮,但很管用。