handling DATETIME values 0000-00-00 00:00:00 en JDBC

Obtengo 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 casi nulo para DATETIME), aunque solo estoy tratando de obtener el valor como cadena, no como un objeto

Lo solucioné haciendo

SELECT CAST(add_date AS CHAR) as add_date

que funciona, pero parece tonto ... ¿hay una mejor manera de hacer esto?

Mi punto es que solo quiero la cadena DATETIME sin procesar, para poder analizarla yo mismocomo e.

Nota aquí es donde entra el 0000: (dehttp: //dev.mysql.com/doc/refman/5.0/en/datetime.htm)

Los valores DATETIME, DATE o TIMESTAMP ilegales 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)

Respuestas a la pregunta(10)

Su respuesta a la pregunta