Recibo una excepción (ver más abajo) si trato de hacer
resultset.getString("add_date");
para una conexión JDBC a una base de datos MySQL que contiene un valor DATETIME de 0000-00-00 00:00:00 (el valor cuasi nulo para DATETIME), aunque solo estoy tratando de obtener el valor como una cadena, no como un objeto.
Me las arreglé haciendo
SELECT CAST(add_date AS CHAR) as add_date
que funciona, pero parece una tontería ... ¿hay una mejor manera de hacer esto?
Mi punto es que solo quiero la cadena DATETIME sin procesar, para poder analizarla yo mismo como está .
nota: aquí es donde entra el 0000: (de http://dev.mysql.com/doc/refman/5.0/en/datetime.html )
Los valores ilegales DATETIME, DATE o TIMESTAMP se convierten al valor "cero" del tipo apropiado ('0000-00-00 00:00:00' o '0000-00-00').
La excepción específica es esta:
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)