Ich bekomme eine Ausnahme (siehe unten), wenn ich es versuche
resultset.getString("add_date");
für eine JDBC-Verbindung zu einer MySQL-Datenbank mit einem DATETIME-Wert von 0000-00-00 00:00:00 (dem Quasi-Null-Wert für DATETIME), obwohl ich nur versuche, den Wert als Zeichenfolge und nicht als Zeichenfolge abzurufen Objekt.
Ich habe das umgangen
SELECT CAST(add_date AS CHAR) as add_date
was funktioniert, aber albern erscheint ... gibt es einen besseren Weg, dies zu tun?
Mein Punkt ist, dass ich nur die rohe DATETIME-Zeichenfolge möchte, damit ich sie selbst analysieren kann, wie sie ist .
Hinweis: Hier kommt der 0000 ins Spiel: (von http://dev.mysql.com/doc/refman/5.0/en/datetime.html )
Unzulässige DATETIME-, DATE- oder TIMESTAMP-Werte werden in den Wert „Null“ des entsprechenden Typs ('0000-00-00 00:00:00' oder '0000-00-00') konvertiert.
Die spezifische Ausnahme ist diese:
SQLException: Cannot convert value '0000-00-00 00:00:00' from column 5 to TIMESTAMP.
SQLState: S1009
VendorError: 0
java.sql.SQLException: Cannot convert value '0000-00-00 00:00:00' from column 5 to TIMESTAMP.
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
at com.mysql.jdbc.ResultSetImpl.getTimestampFromString(ResultSetImpl.java:6343)
at com.mysql.jdbc.ResultSetImpl.getStringInternal(ResultSetImpl.java:5670)
at com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5491)
at com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5531)