2011-05-23 110 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

相關問題