Oracle日期还没有来自java的时间

Wee*_*oze 0 java oracle date oracle-sqldeveloper

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

alter session set nls_date_format = 'DD/MM/YYYY HH24:MI:SS';
Run Code Online (Sandbox Code Playgroud)

如果我不使用它,我只会看到日期 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
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到小时的日期?我应该添加alter session ...到每个查询?

use*_*421 5

描述部分java.sql.Date:

为了符合SQL DATE的定义,java.sql.Date实例包含的毫秒值必须通过将小时,分钟,秒和毫秒设置为零来"标准化"

可能java.sql.Timestamp是正确的类型,其中包括时间组件:

    ...
    java.sql.Timestamp dateDB = rs.getTimestamp("date");
    ...
Run Code Online (Sandbox Code Playgroud)

  • 这意味着,您需要使用`ResultSet.getTimestamp()`而不是`getDate()` (3认同)