MySQL datetime gibt keine Zeit zurück

8

Ich habe eine MySQL db mit einer Tabelle, die eine datetime -Spalte enthält.

Allerdings kann ich in Java keinen Weg finden, dies als eine Art Time Objekt in Java.

Ich kann resultset.getString("Date") aufrufen und es wird datetime zurückgegeben, aber das ist nicht gut, da es keine Möglichkeit gibt, Daten usw. in der Zeichenfolge zu vergleichen.

Ich kann auch resultset.getDate("Date") aufrufen, aber das gibt die Zeit überhaupt nicht zurück.

    
Rory 24.10.2011, 11:52
quelle

2 Antworten

8

Sie müssen die Methoden getTime () oder getTimestamp () verwenden, wie im Kommentar von Thomas vorgeschlagen. Um ein Beispiel zu geben, aber ...

Sagen Sie für eine Tabelle, die Sie abfragen: rs = stmt.executeQuery("select timeCol, dateCol, dateTimeCol from dateTimeTable");

Sie könnten tun:

%Vor%

Wenn Sie das Java-Datumsobjekt verwenden möchten:

%Vor%

Ich würde auch JodaTime nachsehen, um mit Dates in Java zu arbeiten, macht das Leben viel einfacher.

Schließlich ist es erwähnenswert, dass es in MySQL einige Unterschiede zwischen Timestamp und DateTime gibt. Nämlich, dass Timestamp eine Zeitzone hat und der Server einen abgefragten Timestamp in der lokalen Zeit des Servers zurückgibt (was ärgerlich sein kann). Mein Rat ist, DateTime zu verwenden und immer Daten in der gleichen Zeitzone (d. H. UTC) zu behalten. Siehe Ссылка

    
NightWolf 24.10.2011, 12:03
quelle
1

Nur um zu verdeutlichen, gibt nur getTimesStamp () das Datum und die Uhrzeit in einer Aufnahme zurück, wenn Sie Mysql abfragen:

Spalte: startTime: Wert: 2014-09-29 20:49:41

Java:

%Vor%

Ausgabe:     dbSqlTimestamp = 2014-09-29 20: 49: 41.0

    
Salim 01.10.2014 06:19
quelle

Tags und Links