微软分发微软SQL服务器2012服务包1修复作为一个可下载的文件。由于修补程序是累积的,因此每个新版本都包含以前的 SQL Server 2012 Service Pack 1 修复版本中包含的所有修补程序和所有安全修补程序。
症状
假设您运行的查询使用TRY_CONVERT函数以及 Microsoft SQL Server 2012 中的样式参数。在此情况下,样式参数可能被忽略,并且查询可能会返回不正确的结果。
解决方案
累积更新信息
SQL Server 2012 SP1 的累积更新 2
此问题的修复程序首次在累积更新 2 中发布。有关如何获取 SQL Server 2012 SP1 的此累积更新包的详细信息,请单击以下文章编号以查看 Microsoft 知识库中的文章:
2790947 SQL Server 2012 服务包 1 的累积更新包 2备注由于生成是累积的,因此每个新修补程序版本都包含以前的 SQL Server 2012 SP1 修复版本中包含的所有修补程序和所有安全修补程序。我们建议您考虑应用包含此修补程序的最新修复版本。有关详细信息,请单击以下文章编号以查看 Microsoft 知识库中的文章:
2772858 SQL Server 2012 版本发布后 SQL Server 2012 服务包 1 发布
状态
Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。
更多信息
要重现此问题,请按照以下步骤操作:
-
在 SQL Server 2012 SP1 中创建名为"测试"的表,并将记录插入到表中:CREATE TABLE TEST (I DATE);INSERT INTO TEST VALUES (GETDATE());
-
运行以下查询以返回正确的结果:SELECT TOP 1 TRY_CONVERT(VARCHAR, TRY_CONVERT(DATE, '20121023'), 112) FROM TEST;SELECT CONVERT(VARCHAR, TRY_CONVERT(DATE, '20121023'), 112) FROM TEST;SELECT CONVERT(VARCHAR, CONVERT(DATE, '20121023'), 112) FROM TEST;SELECT TRY_CONVERT(VARCHAR, '20121023', 112) FROM TEST;--The returned result is "20121023".
-
然后,运行以下查询以返回不正确的结果:SELECT TRY_CONVERT(VARCHAR, TRY_CONVERT(DATE, '20121023'), 112) FROM TEST;SELECT TRY_CONVERT(VARCHAR, CONVERT(DATE, '20121023'), 112) FROM TEST;--The returned result is "2012-10-23".
参考
有关TRY_CONVERT(Transact-SQL)功能的详细信息,请转到以下 MSDN 网站:
有关TRY_CONVERT(转换-SQL)函数的一般信息有关详细信息,SQL Server 的增量服务模型,请单击以下文章编号以查看 Microsoft 知识库中的文章:
935897 SQL Server 团队提供增量服务模型,可为报告的问题提供修补程序有关 SQL Server 更新的命名架构的详细信息,请单击以下文章编号以查看 Microsoft 知识库中的文章:
822499微软 SQL Server 软件更新包的命名架构有关软件更新术语的详细信息,请单击以下文章编号以查看 Microsoft 知识库中的文章:
824684 用于描述 Microsoft 软件更新的标准术语的说明