2010-07-16 15 views
26

Estoy perdiendo precisión en mis llamadas a ResultSet.getDate (x). Básicamente:JDBC ResultSet getDate perdiendo precisión

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

está volviendo fechas truncados al día donde modificado es un campo de marca de Oracle de precisión predeterminada. Creo que puede haber algún ajuste de JDBC que me falta; por lo general, TIMESTAMP es compatible con DATE, pero espero no tener que redefinir toda la tabla.

Respuesta

4

Debe usar java.sql.Timestamp en lugar de java.sql.Date. Después puede usarlo como un objeto java.util.Date si es necesario.

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

Espero que esto ayude.

+2

La construcción de 'new Date' es innecesaria ya que' Timestamp extends Date'. – BalusC

0

Usar Timestap es la forma correcta. Por favor, no tome eso con Timestamp no podrá establecer las columnas para anulables si tuviera que usar Liquibase.

Un problema que encontré también.