修复: Microsoft SQL Server JDBC 驱动程序 3.0 返回不正确的日期值与 JRE 1.7

文章翻译 文章翻译
文章编号: 2652061 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

症状

请考虑以下情形:
  • 您有 Java 使用的应用程序的 Microsoft SQL Server JDBC 驱动程序版本 3.0 和 Java 运行时环境版本 1.7 (JRE 1.7) 连接到 SQL Server 数据库。
  • 应用程序将使用以下三个函数中的任意以从数据库获取日期:
    • getDate()
    • getTimeStamp()
    • getDateTimeOffset()
  • 数据类型 SQL Server 数据库中是日期, DATETIME2DATETIMEOFFSET.
在此方案中,此函数返回不正确的日期值。

备注
  • 晚于公历中的 1582 年由该函数返回的日期值时才出现此问题。
  • 如果应用程序使用以下值之一,不会出现此问题:
    • Microsoft SQL Server JDBC 驱动程序版本 3.0 和 JRE 1.5/JRE 1.6
    • Microsoft SQL Server JDBC 驱动程序版本 2.0 和 JRE 1.7

原因

"症状"一节中描述的函数的行为取决于 Java 日历 Api。这些 Api 的行为中的更改导致 Microsoft SQL Server JDBC 驱动程序版本 3.0 返回不正确的值。

解决方案

Microsoft SQL Server JDBC 驱动程序版本 3.0 已修改,以便"症状"一节所述的函数返回正确的值,而不管的 JRE 版本。Microsoft SQL Server JDBC 驱动程序版本 4.0 还将包含此修改。

修补程序信息

可以从 Microsoft 获得支持的修补程序。但是,此修补程序用于解决本文中描述的问题。此修补程序仅适用于系统遇到本文中描述的问题。此修补程序可能会接受进一步的测试。因此,如果这个问题没有对您造成严重的影响,我们建议您等待包含此修补程序的下一个软件更新。

如果此修补程序可供下载,没有在此知识文库文章顶部"提供修补程序下载"部分。如果此部分不会出现,请联系 Microsoft 客户服务和支持,以获取此修复程序。

注意 如果出现其他问题或是否需要任何故障诊断,您可能必须创建一个单独的服务请求。其他支持问题和事项,不适合此特定的修补程序将正常收取支持费用。有关的 Microsoft 客户服务和支持电话号码,或创建单独的服务请求的完整列表,请访问以下 Microsoft 网站:
http://support.microsoft.com/contactus/?ws=support
注意 在"可用的修补程序下载"窗体显示已可用的修复程序的语言。如果您看不到您的语言,这是因为一个修补程序不能用于该语言。

安装信息

若要安装此修补程序,请按照下列步骤:

WINDOWS
  1. 阅读此修补程序的 license.txt 文件。
  2. 下载并使用 Microsoft SQL Server JDBC 驱动程序版本 3.0 接受此许可证。
  3. 下载 sqljdbc_<version>_enu.exe 文件至临时目录。</version>
  4. 运行 sqljdbc_<version>_enu.exe 文件。</version>
  5. 在得到提示时,请键入安装目录。
    我们建议您通过使用以下默认目录解包压缩 (.zip) 文件:
    %ProgramFiles%\Microsoft 3.0 的 SQLServer JDBC 驱动程序
  6. 包解包后,可以通过打开打开 JDBC 帮助系统InstallationDirectory\Microsoft SQL Server JDBC 驱动程序 3.0 \sqljdbc_<version>\<language>\help\default.htm。JDBC 帮助系统显示帮助系统中的 web 浏览器。</language> </version>

UNIX
  1. 阅读此修补程序的 license.txt 文件。
  2. 下载并使用 Microsoft SQL Server JDBC 驱动程序版本 3.0 接受此许可证。
  3. 下载 sqljdbc_<version>_enu.tar.gz 文件至临时目录。</version>
  4. 要将压缩为 zip 格式 tar 解包,请目录访问要解压缩的驱动程序和类型的位置:
    gzip-d sqljdbc_<version>_enu.tar.gz</version>
  5. 将解压缩 tar,其移动到该目录要安装的驱动程序和类型的位置:
    tar-xf sqljdbc_<version>_enu.tar</version>
  6. 包解包后,可以通过打开打开 JDBC 帮助系统InstallationDirectory\Microsoft SQL Server JDBC 驱动程序 3.0 \sqljdbc_<version>\<language>\help\default.htm。JDBC 帮助系统显示帮助系统中的 web 浏览器。</language> </version>


修补程序替换信息

此修补程序包含了有关 Microsoft SQL Server JDBC 驱动程序版本 3.0 以前的修复。

文件信息

此修补程序的全球版具有的文件属性 (或更新的文件属性) 下表中列出。日期和时间,这些文件列出了以协调通用时间 (UTC)。当您查看文件信息时,它将转换为本地时间。要了解 UTC 与本地时间之间的时差,请使用 时区 在选项卡 日期和时间 在控制面板中的项。

收起该表格展开该表格
文件名称文件版本文件大小日期时间平台
Sqljdbc.jar不适用 518,2942011 年 12 月 08 日16: 05 不适用
Sqljdbc4.jar不适用 537,5662011 年 12 月 08 日16: 05 不适用
Xa_install.sql不适用 37,122011 年 12 月 08 日16: 05 不适用
Sqljdbc_xa.dll 3.0.1301.203253,7442011 年 12 月 08 日16: 05 IA-64
Sqljdbc_xa.dll 3.0.1301.203131,3762011 年 12 月 08 日16: 05 x64
Sqljdbc_xa.dll 3.0.1301.203102,1922011 年 12 月 08 日16: 05 x86
Sqljdbc_auth.dll 3.0.1301.203175,4082011 年 12 月 08 日16: 05 IA-64
Sqljdbc_auth.dll 3.0.1301.20387,3442011 年 12 月 08 日16: 05 x64
Sqljdbc_auth.dll 3.0.1301.20369,9362011 年 12 月 08 日16: 05 x86




状态

Microsoft 已经确认这是"适用于"一节中列出的 Microsoft 产品中的问题。

属性

文章编号: 2652061 - 最后修改: 2012年1月5日 - 修订: 2.0
这篇文章中的信息适用于:
  • Microsoft SQL Server Java Database Connectivity Driver 3.0
关键字:?
kbqfe kbhotfixserver kbfix kbexpertiseadvanced kbsurveynew kbautohotfix kbmt KB2652061 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 2652061
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com