2011-05-23 109 views
2

我对SQL Server相对较新,我试图将约3000条记录的数据类型从Char更新为Datetime,因此我可以使用DATEDIFF函数。我创建了一个实现转换的视图,但我认为我需要做的是更改原始表中的数据。将现有数据的数据类型从Char转换为DateTime与SQL

SELECT 
    CONVERT(datetime, CONVERT(char(8), TRANS_ACCOUNTINGDATE_ALLCAMPAIGNS_2010_ALLPROCESSINGACCOUNTS_ALL)) 
FROM Accounting; 

我想我需要做的是一个alter table并遍历执行转换的每一行。尝试使用GUI更改数据类型对我来说不起作用。

任何帮助,将不胜感激。

由于

回答

2

数据类型是列的属性不只是在柱内部的数据的。您不能将datetime数据放入char字段 - 这是数据类型的用途!

您需要添加一个新字段,然后运行UPDATE语句以将其转换为数据。然后,您可以删除原始字段并将其重命名为原始名称。

+0

谢谢大家,我明白了! – hkflight 2011-05-23 19:35:25

+0

实际上,只要CHAR列中的所有值都可以转换为DATETIME,就可以简单地运行ALTER TABLE ... ALTER COLUMN命令并运行(在SQL 2008中测试) – 2011-05-23 19:51:57

+1

@Tom - 很高兴知道,我从来没有试图在填充字段上从'char'更改为'datetime'。我个人更喜欢用一个新的领域来做,所以我可以控制这个转变。 – JNK 2011-05-23 19:58:40

相关问题