我date在SQL Server数据库中有以下列.
数据类型当前varchar,日期以以下格式存储:2010-04-24
我正在运行以下命令:
ALTER TABLE games ALTER COLUMN date date
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:
错误:从字符串转换日期和/或时间时转换失败.
我究竟做错了什么?
可能有一些日期不起作用.您使用的是哪个版本的SQL Server?2008我猜想,如果你有DATE数据类型 - 对吗?
我的建议是:
1)创建一个新类型的列 DATE
ALTER TABLE dbo.Games
ADD NewDate DATE
Run Code Online (Sandbox Code Playgroud)
2)在表上运行更新脚本,查看哪些条目可能无法转换为 DATE
UPDATE dbo.Games
SET NewDate = CAST([date] AS DATE)
WHERE ISDATE([date]) = 1
Run Code Online (Sandbox Code Playgroud)
检查ISDATE() = 1应过滤掉那些无法转换为DATE数据类型的条目.
成功转换所有条目后,您可以随时删除旧[date]列并将新列重命名为[date]- 但是使用类似于DATE列名的保留字并不是真的很聪明 - 我会尝试使用更多内容,更富有表现力的东西(与您所处的问题领域有关).
| 归档时间: |
|
| 查看次数: |
5563 次 |
| 最近记录: |