Ich verwende Apache Meta-model
, um die Werte aus MS SQL SERVER 2008 R2
Datenbank zu extrahieren. Es gibt ein Feld in der MS SQL SERVER 2008 R2
Datenbank des Typs TIME(7)
, deren Java-Äquivalenttyp java.sql.Time
ist, aber java.sql.Time
zeigt NICHT die Millisekunden. z.B.Wie extrahiert man den Wert von TIME (7) Feld von MS SQL SERVER 2008 R2 in Java?
Actual `TIME(7)` value in database: `12:28:16.9475678`
whereas I getting: `12:28:16`
Wie erhalten Sie die Zeit in Millisekunden?
Aktualisiert:
Als ich versuchte Millisekunden erhalten mit org.joda.time.LocalTime
wie Sie unten sehen können:
LocalTime localTime = new LocalTime(((Time)row.getValues()[pos]).getTime());
localTime.toString();
Ausgang: 12:28:16.947
(es den runden Wert von 9475678
zeigt)
Nach dem Konvertieren zu String
, bekomme ich den runden Wert von Millisekunden 12:28:16.947
. Die Millisekundengenauigkeit ist verloren. Bitte schlagen Sie vor, wie Sie den genauen Wert in Millisekunden ohne Rundungswert erhalten?
Aktualisiert:
ich mit getNanos versucht(), wie vorgeschlagen, aber ich bin immer null Millisekunden außer meinem genauen Wert in Millisekunden wie:
Istwert: 12: 28: 16,9475678 und ich bin immer 12: 28: 16,9470000
Code: -
long timestamp =new Timestamp(((Time)row.getValues()[pos]).getTime()).getNanos();
Ich versuchte es mit 'org.joda.time.LocalTime' und es automatisch Runden der Millisekunden Wert. – shree
@Shree mit 'LocalTime' wird Ihnen nicht helfen, weil Sie immer noch zuerst die' java.sql.Time' bekommen. Holen Sie es als Timestamp (Sie müssen möglicherweise konvertieren/in Zeitform in Ihre Abfrage zuerst (!)), Und auch auf ['Timestamp.getNanos()'] (http://docs.oracle.com/javase/) /docs/api/java/sql/Timestamp.html#getNanos--), die die Sekundenbruchteile in Nanosekunden enthält. –
@MarkRotteveel. Ich werde es versuchen und Sie wissen lassen. –