2016-11-25 43 views
0

我的应用程序使用的是Oracle数据库,其中一个表包含日期列。在做内部的SQLDeveloper我的疑问,我需要添加以下行来获得日期+小时Oracle日期没有来自java的日期

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 ...吗?

+1

如何从数据库中检索数据?你如何从代码中显示它? ** [**]您的问题并添加检索并显示日期的Java代码。 –

+0

@a_horse_with_no_name问题已更新 – Weedoze

+0

类似问题已解决[此处](http://stackoverflow.com/questions/21162753/jdbc-resultset-i-need-a-getdatetime-but-there-is-only-getdate-and- gettimestamp) – Abhishek

回答

5

描述的java.sql.Date部分:

要使用SQL DATE的定义符合,毫秒值由java.sql.Date实例包裹 必须通过设置小时, 分钟是“规范化”,秒和毫秒到零

也许java.sql.Timestamp是正确的类型,其包括时间分量:

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

这意味着,你需要使用'ResultSet.getTimestamp()'而不是'getDate()' –