2010-01-24 50 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

相关问题