2010-07-16 7 views
26

Ich verliere Präzision in meinem ResultSet.getDate (x) Anrufe. Grundsätzlich gilt:JDBC ResultSet getDate Genauigkeit verlieren

gibt Daten zurück, die an dem Tag abgeschnitten sind, an dem MODIFIED ein Oracle TIMESTAMP-Feld mit Standardpräzision ist. Ich denke, dass es JDBC Tweaks gibt, die ich vermisse; Normalerweise ist TIMESTAMP mit DATE kompatibel, aber ich hoffe, dass ich nicht die gesamte Tabelle neu definieren muss.

Antwort

4

Sie sollten java.sql.Timestamp anstelle von java.sql.Date verwenden. Sie können es später als java.util.Date-Objekt verwenden, falls erforderlich.

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

Hoffe, das hilft.

+2

Das Erstellen von 'new Date' ist unnötig, da' Timestamp extends Date'. – BalusC

0

Verwenden von Timestap ist der richtige Weg. Bitte nehmen Sie das nicht mit Zeitstempel, Sie können die Spalten nicht auf NULL setzen, wenn Sie Liquibase verwenden.

Ein Problem stieß ich auch.