tsql - T-SQL : Convert varchar date column to date type

标签 tsql date

我在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/

相关文章:

sql - 日期时间函数 : semester, 季度

javascript - 如何在 Javascript 中获取时区日期和时间的 UTC 值?

MySQL '%y' 计算错误世纪

xml - 如何在 SQL Server 2008 中合并 2 个 XML 变量

sql - T-SQL 重新排序表中的行

tsql - 您如何计算两个日期之间的星期数?

ruby - 在 ruby​​ 中生成 http 日期 (GMT) 字符串的简单方法

mysql - FROM_UNIXTIME 与 DATE_ADD 的秒数不匹配

c# - 根据自定义周末计算周数

sql - CASE SQL 返回 Null