Eu recebo uma exceção (veja abaixo) se eu tentar fazer
resultset.getString("add_date");
para uma conexão JDBC com um banco de dados MySQL contendo um valor DATETIME de 0000-00-00 00:00:00 (o valor quase nulo para DATETIME), embora eu esteja apenas tentando obter o valor como string, não como um objeto.
Eu contornei isso fazendo
SELECT CAST(add_date AS CHAR) as add_date
que funciona, mas parece bobo ... existe uma maneira melhor de fazer isso?
Meu ponto é que eu só quero a string DATETIME bruta, para que eu possa analisá-la como está .
observação: é aqui que entra o 0000: (de http://dev.mysql.com/doc/refman/5.0/en/datetime.html )
Valores ilegais de DATETIME, DATE ou TIMESTAMP são convertidos para o valor “zero” do tipo apropriado ('0000-00-00 00:00:00' ou '0000-00-00').
A exceção específica é 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)