Я отримую виняток (див. Нижче), якщо намагаюся це зробити
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)