Я получаю исключение (см. ниже), если я пытаюсь сделать
resultset.getString("add_date");
для соединения JDBC с базой данных MySQL, содержащей значение DATETIME 0000-00-00 00:00:00 (значение квазипучки для DATETIME), хотя я просто пытаюсь получить значение как строку, а не как объект.
Я обошел это, сделав
SELECT CAST(add_date AS CHAR) as add_date
который работает, но кажется глупым... есть ли лучший способ сделать это?
Я хочу сказать, что мне просто нужна строка DATETIME, поэтому я могу самостоятельно ее проанализировать как есть.
примечание: здесь, где находится 0000: (от http://dev.mysql.com/doc/refman/5.0/en/datetime.html)
Недействительный DATETIME, DATE или TIMESTAMP значения преобразуются в "ноль" значение соответствующего типа ('0000-00-00 00:00:00' или '0000-00-00').
Конкретным исключением является следующее:
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)