Jeśli spróbuję, dostaję wyjątek (patrz poniżej)
resultset.getString("add_date");
dla połączenia JDBC z bazą danych MySQL zawierającą DATETIME wartość 0000-00-00 00:00:00 (quasi-zerowa wartość dla DATETIME), mimo że próbuję tylko uzyskać wartość jako ciąg, a nie jako obiekt.
Poradziłem sobie z tym, robiąc
SELECT CAST(add_date AS CHAR) as add_date
co działa, ale wydaje się głupie ... czy istnieje lepszy sposób na zrobienie tego?
Chodzi mi o to, że po prostu chcą surowego DATETIME ciąg, więc mogę sobie zanalizować to jak jest .
uwaga: tutaj pojawia się 0000: (z http://dev.mysql.com/doc/refman/5.0/en/datetime.html )
Niedozwolone wartości DATETIME, DATE lub TIMESTAMP są konwertowane na wartość „zero” odpowiedniego typu („0000-00-00 00:00:00” lub „0000-00-00”).
Szczególnym wyjątkiem jest ten:
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)