Oracle 日期没有从 java 开始的时间

Oracle date has not time from java

我的应用程序正在使用 Oracle 数据库,其中一个 table 包含日期列。在 SQLDeveloper 中进行查询时,我需要添加以下行以获取日期 + 小时数

alter session set nls_date_format = 'DD/MM/YYYY HH24:MI:SS';

如果我不使用它,我只会看到 25/11/2016

这样的日期

当我从我的 JAVA 代码进行查询时,我没有上面的行,因此每个日期都以 DD/MM/YY

格式返回

JAVA

String query = "SELECT date from SCHEMA.table";
ResultSet rs = null;
try {
    connection = ConnectionFactory.getConnection(Database.ORACLE);
    preparedStatement = connection.prepareStatement(query);

    rs = preparedStatement.executeQuery();
    while (rs.next()) {
        java.sql.Date dateDB = rs.getDate("date");
    }
catch(SQLException e){
    //error
}

我怎样才能得到带时间的日期?我应该在每个查询中添加 alter session ... 吗?

java.sql.Date 的描述部分:

To conform with the definition of SQL DATE, the millisecond values wrapped by a java.sql.Date instance must be 'normalized' by setting the hours, minutes, seconds, and milliseconds to zero

可能 java.sql.Timestamp 是包含时间部分的正确类型:

    ...
    java.sql.Timestamp dateDB = rs.getTimestamp("date");
    ...