不允许从数据类型datetime到int的隐式转换。使用CONVERT函数运行此查询

时间:2012-09-07 10:57:31

标签: sql-server-2008r2-express

alter table Garantor alter column [Birth Date] int

1 个答案:

答案 0 :(得分:2)

尝试这样的事情(您需要创建一个新列,使用转换更新它,删除旧列,然后使用旧名称重命名新列)

ALTER TABLE dbo.Garantor
ADD newBirthDate int NOT NULL DEFAULT 0 -- NULL and DEFAULT as required
GO

UPDATE dbo.Garantor
SET newBirthDate = CAST([Birth Date] AS int) -- or CONVERT function, it will do the same
GO

ALTER TABLE dbo.Garantor
DROP COLUMN [Birth Date]
GO

SP_RENAME 'dbo.Garantor.newBirthDate', 'dbo.Garantor.[Birth Date]'
GO