将数据类型从varchar(int)修改为日期和时间

时间:2013-11-24 09:46:50

标签: sql

我有一个我认为在SQL中被错误声明的列。它包含数据,我不希望丢失数据。我希望将varchar(int)的定义更改为日期和时间。我的印象是我不能只改变列类型?

3 个答案:

答案 0 :(得分:0)

假设您询问SQL Server,只要该列中的所有数据都可以由SQL Server自动转换为新类型,您就可以更改该列。

如果数据无法自动转换(因为它包含的字符串不是有效的日期和时间),则需要执行以下操作:

  1. 创建一个datetime数据类型的新列。
  2. 将数据从旧列转换为新列。
  3. 放下旧栏。
  4. 将新列重命名为旧列的名称。

答案 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