J'obtiens une exception (voir ci-dessous) si j'essaie de faire
resultset.getString("add_date");
pour une connexion JDBC à une base de données MySQL contenant une valeur de type DATETIME de 0000-00-00 00:00:00 (la valeur quasi-nulle pour le type DATETIME), même si je suis juste essayer d'obtenir la valeur sous forme de chaîne, non pas comme un objet.
J'ai eu autour de ce en faisant
SELECT CAST(add_date AS CHAR) as add_date
ce qui fonctionne, mais semble stupide... est-il une meilleure façon de le faire?
Mon point est que je veux juste le raw DATETIME chaîne, afin que je puisse l'analyser moi-même comme est.
remarque: c'est ici où la 0000: (à partir de http://dev.mysql.com/doc/refman/5.0/en/datetime.html)
Illégale DATETIME, DATE, TIMESTAMP ou les valeurs sont converties en "zéro" valeur du type approprié ('0000-00-00 00:00:00', ou '0000-00-00').
L'exception spécifique est celui-ci:
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)