2010-01-24 122 views
-1

我有表包含一個文本字段[nvarchar(10)]如何在sql server 2008中將文本轉換爲日期?

如何將此字段轉換爲日期?

當我嘗試在現場改變設計模式 - 我得到這個:

無法修改表。

從字符串中轉換日期和/或時間時轉換失敗。

是否有任何查詢,我可以運行做到這一點?

感謝的提前

+0

什麼是文本字符串的格式? – 2010-01-24 11:16:14

+0

也許你可以向我們展示一個文本字段的例子嗎? – 2010-01-24 11:17:31

回答

3

,你可以按照這個步驟:

  • 創建一個新的datetime列,可爲空
  • 更新,與正常鑄造值列
  • 放下你的原始列
  • 重命名並調整列以使其不接受空值(如果適用)

試試這個示例:

CREATE TABLE #Sample 
(
    FieldAsText varchar(10) NOT NULL 
); 
GO 

INSERT INTO #Sample VALUES ('2009-01-24'); 

ALTER TABLE #Sample ADD FieldAsDate datetime NULL 
GO 

UPDATE #Sample SET FieldAsDate = CONVERT(DATETIME, FieldAsText) 

SELECT * FROM #Sample 

ALTER TABLE #Sample DROP COLUMN FieldAsText 
ALTER TABLE #Sample ALTER COLUMN FieldAsDate datetime NOT NULL 
GO 

SELECT * FROM #Sample 
+0

感謝您的幫助!!,你能寫我的查詢嗎? – Gold 2010-01-24 11:45:26

+1

在這裏你走了;您應該藉此機會接受以前問題的一些答案:這將有助於您在將來獲得更多幫助 – 2010-01-24 12:32:02

相關問題