我有一个我认为在SQL中被错误声明的列。它包含数据,我不希望丢失数据。我希望将varchar(int)的定义更改为日期和时间。我的印象是我不能只改变列类型?
答案 0 :(得分:0)
假设您询问SQL Server,只要该列中的所有数据都可以由SQL Server自动转换为新类型,您就可以更改该列。
如果数据无法自动转换(因为它包含的字符串不是有效的日期和时间),则需要执行以下操作:
答案 1 :(得分:0)
假设SQL Server RDBMS,请确保备份表。
ALTER TABLE dbo.YourTable
ALTER COLUMN YourColumnName datetime
答案 2 :(得分:0)
试试这只是一个例子:
Alter Table testing
Add some_dt DateTime Default('1900-01-01') NOT NULL
GO
Update testing
Set some_dt = Convert(DateTime,Tmp_some_dt)
GO
Alter Table testing
DROP Column Tmp_some_dt
GO
select * from testing
go