【问题标题】:Some date values off by a day in JDVJDV 中的一些日期值按天计算
【发布时间】:2018-12-11 00:42:48
【问题描述】:

在 VBD 中查询源模型时,源数据库是 Informix 11,日期列的值有时会作为前一天返回。例如,Informix 中的实际值为 Oct 10,但查询 JDV 源模型时显示的值为 Oct 9。查询 Informix 直接返回正确的日期。我在 Windows 10 上使用 JDV 6.4.0 和 JDK 1.8.0_162 (x64)。

有什么想法吗?提前致谢!

【问题讨论】:

  • 我怀疑发生了一些时区偏移。还可以使用像 SquirreL 这样的普通 JDBC SQL 客户端进行仔细检查,看看它报告了什么?还可以查看 Teiid 文档以了解如何设置数据库偏移量。

标签: redhat-datavirt


【解决方案1】:

要详细说明 Ramesh 所说的内容,您需要检查客户端和服务器 jvm 时区。 JDV 将尝试在数据库、服务器和客户端之间保持日期/时间日历字段的一致性。如果 Teiid 客户端与服务器处于不同的时区,则客户端将自动更改日期/时间值的 UTC 值,以便它们与服务器显示的内容相匹配 - 这由服务器时区确定。

当从数据库中检索到时间戳值时,我们假定驱动程序已经对其进行了调整以解决任何时区差异。如果不是这种情况,则有一个名为 DatabaseTimeZone 的翻译器执行属性将利用基于 JDBC 日历的方法来调整检索到的日期/时间值。

一个常见问题是夏令时不匹配 - 通常最好将 JDV 服务器置于标准时区。

【讨论】:

  • 感谢您的来信,非常感谢。我们首先检查了 TZ(在我们的例子中,服务器和客户端位于同一建筑物中,但您永远不知道配置设置是否错误!),但这似乎不是根本原因。奇怪的是,我们刚刚更新到 6.x 系列中的最新 EAP 版本,问题就消失了。 JDV 或 EAP 发行说明中没有任何与我们看到的问题或修复相关的内容。但看起来我们的问题现在已经结束了。感谢您的建议和帮助!
猜你喜欢
  • 1970-01-01
  • 2010-09-22
  • 1970-01-01
  • 1970-01-01
  • 2021-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-10
相关资源
最近更新 更多