gpt4 book ai didi

java - hibernate 查询以获取服务器时间而不转换为本地时区

转载 作者:行者123 更新时间:2023-11-29 11:51:25 25 4
gpt4 key购买 nike

我到处搜索这个问题的答案,但一无所获。请注意(在有人向我提出类似但无用的问题之前)我没有在数据库中存储任何日期/时间。

背景

我有一个在某处服务器上运行的 Postgres 数据库。我有一个使用 Hibernate 查询数据库的 Java 后端。数据库服务器和 Java 后端(Tomcat 服务器)在不同的系统上运行,并且可以处于不同的时区。

服务器需要在特定时间(可以由用户配置)执行一些清理任务——例如,每天中午删除超过x天的条目。我正在尝试在服务器上运行查询以获取当前服务器时间。问题是 hibernate 或 JVM 正在将时间从数据库服务器上的时间转换为运行 Tomcat 的服务器上的本地时间。

示例

我在使用中央时间 (UTC-6) 的服务器上有一个数据库服务器 (Postgres)。我有使用 GMT (UTC+0) 的后端服务器 (Java/Tomcat)。我有一个可以运行以获取当前时间的查询 (SELECT now())。假设数据库服务器上的当前时间是 12:00:00。如果我使用 pgAdmin 从数据库服务器上的后端服务器运行查询,它会返回正确的时间 (12:00:00)。如果我使用 Hibernate 运行相同的查询,它会将其转换为 GMT (18:00:00)。

问题

有没有我可以从后端服务器 (Java/Tomcat) 运行的查询,该查询将从数据库服务器获取当前时间而不转换它?或者,我可以对返回的时间做些什么,以便将其转换回数据库服务器上的时间吗?

最佳答案

Tomcat 服务器上的时间是 18:00,然后下面的 sql 将返回 12:00...

select current_timestamp - (interval '6' hour)

关于java - hibernate 查询以获取服务器时间而不转换为本地时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47272793/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com