我在SQL Server数据库中有以下列date
。
数据类型目前为varchar
,日期按以下格式存储:2010-04-24
我正在运行以下命令:
ALTER TABLE games ALTER COLUMN date date
但是我收到以下错误:
错误:转换日期和/或时间时转换失败 字符串。
我做错了什么?
答案 0 :(得分:7)
可能有一些日期不起作用。你使用的是哪个版本的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
之类的保留字列名不是很聪明 - 我会尝试使用更多的说法,更具表现力的东西(与您所处的问题域有关)。