시도하면 예외가 발생합니다 (아래 참조).
resultset.getString("add_date");
DATETIME 값 0000-00-00 00:00:00 (DATETIME의 준 널 값)을 포함하는 MySQL 데이터베이스에 대한 JDBC 연결의 경우 값을 문자열이 아닌 문자열로 가져 오려고하지만 목적.
나는 이것을 통해 이것을 극복했다.
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 값은 적절한 유형의 "0"값 ( '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)