症状
请考虑以下情形:
-
在 Microsoft 主机集成服务器 2013,配置 DB2 表。
-
表中包含具有值为 24:00:00 的时间的时间戳列。
-
您试图为 DB2 使用 OLEDB 提供程序选择时间戳列。
在这种情况下,请求将失败,并返回以下异常︰
System.ArgumentOutOfRangeException 未处理︰ HResult = 2146233086
消息的小时、 分钟和秒 = 参数描述未表示的日期时间。
原因
发生此问题是因为 Microsoft SQL Server 中的值为 24:00:00 的时间无效。
解决方案
修补程序信息
可以从 Microsoft 获得受支持的修复程序。然而,此修补程序仅用于解决本文中描述的问题。此修复程序仅适用于遇到本文中描述的问题的系统。此修补程序可能会接受进一步的测试。因此,如果这个问题没有对您造成严重的影响,我们建议您等待包含此修复程序的下一个软件更新。
如果此修复程序可供下载,则在此知识库文章的顶部会出现“修补程序下载可用”部分。如果未显示此部分,请与 Microsoft 客户服务和支持部门联系以获取此修复程序。
注意是否出现其他问题,或者如果任何故障诊断是必需的您可能需要创建单独的服务请求。对于不符合此特定的修补程序的其他支持问题和事项将照常收取费用。有关 Microsoft 客户服务和支持电话号码的完整列表,或要创建单独的服务请求,请访问下面的 Microsoft 网站:
http://support.microsoft.com/default.aspx?scid=fh;[行];CNTACTMS
注意:"提供修补程序下载"窗体显示获取此修复程序的语言。如果看不到您的语言,则修补程序没有那种语言的版本。
系统必备组件
对 Microsoft 主机集成服务器 2013 安装要应用此修补程序,必须具有累积更新 2。有关如何获取此累积更新程序包,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
累积更新信息
主机集成服务器 2013年的情况下,此问题的修复程序包括在累积更新包 3。有关如何获取累积更新程序包,请参阅更新软件包的主机集成服务器 2013年 3 的累计。
解决方法
要变通解决此问题,您可以为文本解释时间戳列的值。若要执行此操作,必须将字符日期时间连接字符串参数设置为True。例如,设置此字符串如下︰
日期时间为 Char = True
详细信息
如果时间戳列中的小时值为24:00,从 DB2 格式调整为 MSSQL 格式创建一天增加。例如,值为"2015年-08-26-24.00.00.000000"DB2 侧后调整为"2015年-08-27-00.00.00.000000"的 MSSQL 一侧。
状态
Microsoft 已经确认这是“适用于”一节中列出的 Microsoft 产品中的问题。