Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.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
C# 是否在SQL Server中将datetime列转换为datetime2列?_C#_Sql Server - Fatal编程技术网

C# 是否在SQL Server中将datetime列转换为datetime2列?

C# 是否在SQL Server中将datetime列转换为datetime2列?,c#,sql-server,C#,Sql Server,我有一个SQL Server 2005数据库,其中有一个datetime列。表中已经有数据,但现在客户需要1753年之前的日期。因此,我决定将数据库迁移到SQL Server 2008,以使用datetime2类型 但是,我不能将列的类型从datetime切换到datetime2。是否有方法进行此转换或我必须重新导入数据 谢谢, 丹尼尔 但是我不能只是换一种类型 从datetime到的列的 日期时间 当然可以,使用altertable TableNAme ALTER column ColumnN

我有一个SQL Server 2005数据库,其中有一个
datetime
列。表中已经有数据,但现在客户需要1753年之前的日期。因此,我决定将数据库迁移到SQL Server 2008,以使用
datetime2
类型

但是,我不能将列的类型从
datetime
切换到
datetime2
。是否有方法进行此转换或我必须重新导入数据

谢谢,

丹尼尔

但是我不能只是换一种类型 从datetime到的列的 日期时间

当然可以,使用
altertable 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

我要问:为什么他们需要1753年之前的日期?这是一个关于历史文本和字母的数据库。为什么你不能改变类型
alter table table name alter column column name datetime 2
?@TheQuant-我想您在处理这些日期时会注意到公历问题。(如果我不只是想提一下的话!)他们在这里采访。如果您的列具有依赖项,例如索引和约束,那么就没有那么简单了。除了删除并重新创建这些,没有其他方法。