2

我在 Datagrip 中使用 Teradata JDBC 16.20。每当我尝试对日期做任何事情时,它都会少返回 1 天。例如:在 Datagrip 中SELECT date'2017-08-01'返回2017-07-31,在 Teradata SQL 助手中返回正确01/08/2017

有谁知道为什么?

4

2 回答 2

1

我们在使用带有 Vertica 数据库的 DataGrip 时遇到了同样的问题。我的预感是日期被移动了两次。当我选择 current_timestamp(在 Vertica 上是带时区的时间戳)时,日期是正确的(通常比当前日期早一天),但是当我选择 current_date 时,我得到前一天(我的时区是美国/太平洋)。我认为正在发生的是 JDBC 驱动程序正在根据两个时区调整日期,然后 DataGrip 正在第二次调整它。

使用具有相同 JDBC 驱动程序但使用不同 SQL 客户端 (DbVisualizer) 的相同 Vertica 数据库没有问题。

我可以使用 DataGrip 提供的唯一解决方法是安装一个更旧的版本。DataGrip 2016.3.4,Build #DB-163.13906.13,建于 2017 年 2 月 21 日,似乎可以正确处理日期列。

于 2018-09-06T16:51:06.880 回答
1

添加-Duser.timezone=UTC到 VM 选项似乎可以解决问题。

于 2018-09-12T00:02:20.543 回答