Ottengo un'eccezione (vedi sotto) se provo a farlo
resultset.getString("add_date");
per una connessione JDBC a un database MySQL contenente un valore DATETIME di 0000-00-00 00:00:00 (il valore quasi nullo per DATETIME), anche se sto solo cercando di ottenere il valore come stringa, non come oggetto.
Ho aggirato questo problema facendo
SELECT CAST(add_date AS CHAR) as add_date
che funziona, ma sembra sciocco ... c'è un modo migliore per farlo?
Il punto è che voglio solo la stringa DATETIME non elaborata, quindi posso analizzarla da solo così com'è .
nota: ecco dove arriva 0000: (da http://dev.mysql.com/doc/refman/5.0/en/datetime.html )
I valori DATETIME, DATE o TIMESTAMP illegali vengono convertiti nel valore "zero" del tipo appropriato ("0000-00-00 00:00:00" o "0000-00-00").
L'eccezione specifica è questa:
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)