Frage

Ich habe Informix-Datenbank mit Zeitstempel-Feld als YEAR TO SECOND definiert. Wenn ich zeige dieses Feld mit JDBC rs.getString (Spalte) nutzt Format mit miliseconds so dieses Feld wie folgt aussieht:

2008-12-18 13:58:14.0

Ich mag es nur YEAR TO SECOND Felder verwenden. I Umgebungsvariable:

GL_DATETIME=%Y-%m-%D %H:%M:%S

aber selbst dann bekam ich miliseconds. Programme ODBC zeigen nicht milisecond. Wie kann ich TIMESTAMP string „YEAR TO SECOND“ nur erhalten? In meinem Programm kann ich Metadaten überprüfen, ob Feld Zeitstempel und dann geschnitten“0,0" , aber ich denke, es sollte simplier Weg sein.

Server-Version: IBM Informix Dynamic Server Version 11.50.TC2DE

Client-Version: IBM Informix JDBC-Treiber für IBM Informix Dynamic Server 3.50.JC3DE

Bearbeiten Es sieht aus, dass alle anderen JDBC-Treiber I getestet (Oracle und PostgreSQL) Zeitstempel Spalten mit miliseconds zeigt, wenn ich getString () verwenden. So habe ich Lösung von Todd vorgeschlagen. Ich überprüfe metatdata und wenn Spalte Zeitstempel dann verwende ich getTimestamp () und formatieren Sie es.

War es hilfreich?

Lösung

Wenn Sie JDBC verwenden, können Sie die rs.getDate verwenden (Spalte) oder rs.getTimestamp (Spalte) Methoden, das Datum zurückgeben und Timestamp-Objekte sind. Dann haben Sie ein Objekt Zeit darstellt, anstatt einen String es direkt auszudrücken. Mit Datum oder Zeitstempel können Sie ein Datum nicht mehr verwenden forma~~POS=TRUNC zu formatieren, um es zu was auch immer String-Darstellung dieser Zeit Sie wählen.

Aktualisieren (nach Kommentaren unten zu lesen): Wenn Sie getDate () verwenden, funktioniert es immer noch für Timestamp-Spalten. Es wird nur die Genauigkeit reduziert auf den zweiten nach unten. Auf diese Weise müssen nicht die Metadaten überprüfen, Sie müssen nur wissen, dass die Spalte eine Art Zeitstempel oder das Datum ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top