T-SQL:将varchar日期列转换为日期类型
问题描述:
我在SQL Server数据库中具有以下列date
列。T-SQL:将varchar日期列转换为日期类型
的数据类型是目前varchar
和日期将被存储在以下格式:2010-04-24
我运行下面的命令:
ALTER TABLE games ALTER COLUMN date date
,但我得到了以下错误:
ERROR: Conversion failed when converting date and/or time from character string.
我在做什么错?
答
可能有几个日期不起作用。您正在使用哪个版本的版本? 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
应过滤掉那些无法转换为的条目0数据类型。
一旦所有的条目已经成功转换,你总是可以删除旧[date]
列,并重新命名新列回[date]
- 但使用保留的字像DATE
的列名是不是真的很聪明 - 我尝试使用更多的话语,更有表现力的东西(与你所处的问题领域有关)。
听起来不错,但现在当我尝试运行更新行时出现以下错误:错误:executeQuery方法必须返回结果集。 – kylex 2011-04-28 16:03:19
我直接使用RazorSQL运行脚本。 – kylex 2011-04-28 16:06:10
@kylex:好的 - 那么你的工具必须有一个有趣的需求....这个声明应该在SQL Server Mgmt Studio中工作得很好...... – 2011-04-28 16:06:42