2010-07-16 12 views
26

Sto perdendo precisione nelle mie chiamate ResultSet.getDate (x). In sostanza:JDBC ResultSet getDate perde precisione

rs = ps.executeQuery(); 
rs.getDate("MODIFIED"); 

sta tornando date troncati per il giorno in cui modificato è un campo timestamp di Oracle di precisione di default. Penso che ci possa essere qualche modifica JDBC che mi manca; solitamente TIMESTAMP è compatibile con DATE, ma spero di non dover ridefinire l'intera tabella.

risposta

4

È necessario utilizzare java.sql.Timestamp anziché java.sql.Date. È possibile utilizzarlo come oggetto java.util.Date in seguito, se necessario.

rs = ps.executeQuery(); 
Timestamp timestamp = rs.getTimestamp("MODIFIED"); 

Spero che questo aiuti.

+2

La costruzione di 'nuova data' non è necessaria poiché" Data/Ora di data/ora ". – BalusC

0

L'utilizzo di Timestamp è il modo corretto. Si prega di non considerare che con Timestamp non sarà possibile impostare le colonne su nullable se si dovesse utilizzare Liquibase.

Un problema che ho riscontrato anche io.

Problemi correlati