java - 使用 hibernate select 获取时间戳字段的错误时间

标签 java mysql sql hibernate postgresql

使用 Hibernate select 获取时间戳字段的时间错误。

<小时/>

我们正在使用 Hibernate 框架和 Postgres数据库。

我们有一个表,在数据类型 TIMESTAMP WITH TIME ZONE 列中存储“created_time” 。

+------------------------------------------+
+ created_time +
+------------------------------------------+
+ 2014-09-22 04:30:00.756 +
+ -----------------------------------------+

假设我们在“created_time”中有一个数据'2014-09-22 04:30:00.756'

我使用了以下 hibernate 查询

query= "SELECT column1,column2,createdTime FROM TableName";
…
…
List<Object[]> dataList=selectQuery.list();
for(Object data[] : dataList)
{
System.out.println("Date and time -> "+data[2].toString()); //Time coming wrong here
}

当我浏览 dataList 时,我发现日期正确,但时间是其他内容,例如“11:45:00.345”

如果我在pgAdminIII中使用相同的查询意味着它来得正确。

但是对于 hibernate 来说,它是错误的。

我什至尝试过SQL查询。我仍然面临着错误的时间问题。

我在网上搜索时没有得到解决方案。

最佳答案

您可能获得的是本地时区而不是服务器时区。 因此,要获取服务器的时间戳,请将您的查询更改为如下所示:

query= "SELECT column1,column2,createdTime at time zone current_setting('TIMEZONE') FROM TableName";

关于java - 使用 hibernate select 获取时间戳字段的错误时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25978233/

相关文章:

Java 扫描器最佳实践

MySQL 过程返回错误值(INSERT SELECT 面对)

sql - 为什么 Sybase ASE 在除法和减法中抛出截断错误?

java - 通过 Maven 集成测试 Flex/Java Web 应用程序的最佳方法?

带有 MySQL 的 Java Servlet

javascript - 节点 + MySQL [ECONNREFUSED 127.0.0.1 :3306]

javascript - Sequelize : Modify output of date timestamp using Getters

c# - Entity Framework 多表查询

java - 在Spring配置中配置WebRequestInterceptor

php - MySql 如果记录存在于选择查询中