【问题标题】:How to get Date AND Time from Oracle database, using Hibernate?如何使用 Hibernate 从 Oracle 数据库中获取日期和时间?
【发布时间】:2017-11-30 10:26:54
【问题描述】:

我得到了一些代码来处理。我需要修改现有代码以返回一个额外的列。使用工具 SQLDeveloper,我可以看到一个示例记录(注意存在日期和时间信息):

30-NOV-17 15:54:00

我得到的代码执行以下操作:

// Create a Hibernate query (Oracle SQL query)
Query query = session.createSQLQuery(<NATIVE_SQL_QUERY_HERE>);
List<Object[]> rawDataRows = query.list();

if (rawDataRows != null) {
    for(Object[] rawDataRow : rawDataRows) {
        // I am trying to get the Date AND Time here
        Timestamp ts = (Timestamp) rawDataRow[7];
    }
}

问题是当我尝试这种方法时出现错误(无法将 java.sql.Date 转换为 Timestamp)。

当我在没有强制转换的情况下访问数据时(只在 Date 对象中获取数据),我没有得到时间信息。而且我需要两者兼得。

到目前为止,我没有尝试过任何工作 - 其他帖子有类似的问题,但它们并不完全相同。

非常感谢任何建议/建议 - 谢谢!

【问题讨论】:

  • @YCF_L,这只会给出日期,而不是一天中的时间(我认为这也是 OP 想说的)。
  • 哎呀我的坏@OleV.V。我认为它给了你们两个
  • 感谢您查看我的问题。是的……它只给出日期。

标签: java hibernate date


【解决方案1】:

您可以使用此代码:

....

Calendar calendar = Calendar.getInstance();
calendar.setTime(rawDataRow[7]);
Timestamp ts =  new Timestamp(calendar.getTimeInMillis());

...

【讨论】:

  • 我试过这个。它返回日期,但不返回时间。
  • 没有错误,它只返回日期而不是时间。我不得不做一个小改动(演员表):calendar.setTime((Date) rawDataRow[7]);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-06-02
  • 2011-05-31
  • 2020-01-23
  • 1970-01-01
  • 2012-10-05
  • 2013-09-13
  • 1970-01-01
相关资源
最近更新 更多