我有一个SQL Server 2005数据库与datetime
列。表中已经有数据,但现在客户需要在1753年之前的日期。所以我决定将数据库迁移到SQL Server 2008以使用datetime2
类型。在SQL Server中将datetime列转换为datetime2列?
但是,我不能只将列的类型从datetime
切换到datetime2
。有没有办法做这种转换或我必须重新导入数据?
谢谢
丹尼尔
我有一个SQL Server 2005数据库与datetime
列。表中已经有数据,但现在客户需要在1753年之前的日期。所以我决定将数据库迁移到SQL Server 2008以使用datetime2
类型。在SQL Server中将datetime列转换为datetime2列?
但是,我不能只将列的类型从datetime
切换到datetime2
。有没有办法做这种转换或我必须重新导入数据?
谢谢
丹尼尔
但是我不能只从切换日期时间列的 类型 日期时间
当然您也可以使用ALTER TABLE TableNAme ALTER column ColumnNAme datetime2
示例
USE tempdb
GO
CREATE TABLE Test(SomeDate DATETIME)
INSERT Test values (GETDATE())
SELECT * FROM Test
GO
ALTER TABLE Test ALTER column SomeDate datetime2
GO
INSERT Test values ('16000101')
SELECT * FROM Test
GO
如果您的列具有依赖关系(例如索引和约束),则并不那么简单。除了删除和重新创建这些内容之外,没有别的办法。 – MarioDS 2016-06-09 13:12:58
我得问:为什么他们需要1753年之前的日期? – MusiGenesis 2011-04-07 13:17:03
这是一个关于历史文本和信件的数据库.. – TheQuant 2011-04-07 13:18:04
为什么你不能只改变类型? 'alter table TableName alter column ColumnName datetime2'? – 2011-04-07 13:20:17