我在SQL Server数据库中有以下列date
。
数据类型当前为varchar
,日期以以下格式存储:2010-04-24
我正在运行以下命令:
ALTER TABLE games ALTER COLUMN date date
但我收到以下错误:
ERROR: Conversion failed when converting date and/or time from character string.
我究竟做错了什么?
最佳答案
可能有一些日期无效。您正在使用SQL Server的哪个版本? 2008我想,如果您有一个DATE
数据类型-对吗?
我的建议是:
1)创建一个类型为DATE
的新列
ALTER TABLE dbo.Games
ADD NewDate DATE
2)在您的表上运行更新脚本,然后查看哪些条目可能不会转换为
DATE
UPDATE dbo.Games
SET NewDate = CAST([date] AS DATE)
WHERE ISDATE([date]) = 1
检查
ISDATE() = 1
应该过滤掉那些不能转换为DATE
数据类型的条目。一旦所有条目都已成功转换,就可以始终删除旧的
[date]
列,并将新列重命名为[date]
-但是使用诸如DATE
这样的保留字作为列名并不是很明智-我会尝试使用一些东西多说些,更具表现力的(与您所在的问题领域有关)。
关于tsql - T-SQL : Convert varchar date column to date type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5821149/