2011-04-07 55 views
14

Tengo una base de datos SQL Server 2005 con una columna datetime. Ya hay datos en la tabla, pero ahora el cliente necesita fechas anteriores a 1753. Por lo tanto, decidí migrar la base de datos a SQL Server 2008 para usar el tipo datetime2.¿Convertir columna de fecha y hora a columna de fecha y hora2 en SQL Server?

Sin embargo, no puedo simplemente cambiar el tipo de la columna de datetime a datetime2. ¿Hay alguna manera de hacer esta conversión o tengo que volver a importar los datos?

Gracias,

Daniel

+2

Tengo que preguntar: ¿por qué necesitan las fechas antes de 1753? – MusiGenesis

+0

Es una base de datos sobre textos históricos y cartas ... – TheQuant

+2

¿Por qué no puedes simplemente cambiar el tipo? 'alter table TableName alter column ColumnName datetime2'? –

Respuesta

22

Sin embargo no puedo cambiar el tipo de la columna de fecha y hora a fecha y hora

Claro que se puede, utilizar ALTER TABLE TableNAme ALTER column ColumnNAme datetime2

ejemplo

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 
+2

No es tan simple si su columna tiene dependencias, como índices y restricciones. No hay otra manera que dejar caer y volver a crear esos. – MarioDS

Cuestiones relacionadas