使用 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/