当我在PgAdmin4或psql中运行下面的查询时,我得到了相同的值。current_time
, now()
和 current_timestamp
:
SELECT now(), CURRENT_TIME, CURRENT_TIMESTAMP;
now | current_time | current_timestamp
-------------------------------+--------------------+-------------------------------
2020-04-27 11:54:55.443006+01 | 11:54:55.443006+01 | 2020-04-27 11:54:55.443006+01
但是,当我在DBeaver中使用JDBC驱动程序连接到同一个PostgreSQL数据库,运行同样的查询时,出现了以下情况 差异 之间 current_time
和 now()
(和 current_timestamp
):
now |current_time|current_timestamp |
-------------------|------------|-------------------|
2020-04-27 12:57:00| 11:57:00|2020-04-27 12:57:00|
很明显,JDBC驱动在某种程度上造成了两者之间的矛盾 current_time
和 current_timestamp
.
我的问题。
current_time
是一个 time WITH time zone
JDBC不支持的东西。
应用程序需要采取特殊的步骤来正确检索该值。所以,是的,这在某种程度上是可以预期的。我想DBEaver使用的是 getTime()
它将时间返回为UTC
这也是使用的原因之一。current_time
不气馁