你目前正处于脱机状态,正在等待 Internet 重新连接

修复: 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 网站: 注意 在"可用的修补程序下载"窗体显示已可用的修复程序的语言。如果您看不到您的语言,这是因为一个修补程序不能用于该语言。

安装信息

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

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 产品中的问题。
Java 7,getDate(),JDBC 3.0,JDBC 4.0

警告:本文已自动翻译

属性

文章 ID:2652061 - 上次审阅时间:01/05/2012 06:46:00 - 修订版本: 2.0

Microsoft SQL Server Java Database Connectivity Driver 3.0

  • kbqfe kbhotfixserver kbfix kbexpertiseadvanced kbsurveynew kbautohotfix kbmt KB2652061 KbMtzh
反馈