2016-11-25 45 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()' –