Tôi nhận được một ngoại lệ (xem bên dưới) nếu tôi cố gắng làm
resultset.getString("add_date");
cho kết nối JDBC với cơ sở dữ liệu MySQL chứa giá trị DATETIME là 0000-00-00 00:00:00 (giá trị gần như null cho DATETIME), mặc dù tôi chỉ đang cố gắng lấy giá trị dưới dạng chuỗi, không phải dưới dạng vật.
Tôi đã giải quyết vấn đề này bằng cách làm
SELECT CAST(add_date AS CHAR) as add_date
cách nào hoạt động, nhưng có vẻ ngớ ngẩn ... có cách nào tốt hơn để làm điều này không?
Quan điểm của tôi là tôi chỉ muốn chuỗi DATETIME thô, vì vậy tôi có thể tự phân tích cú pháp như vậy .
lưu ý: đây là nơi xuất hiện 0000: (từ http://dev.mysql.com/doc/refman/5.0/en/datetime.html )
Các giá trị DATETIME, DATE hoặc TIMESTAMP không hợp lệ được chuyển đổi thành giá trị “không” của loại thích hợp ('0000-00-00 00:00:00' hoặc '0000-00-00').
Ngoại lệ cụ thể là cái này:
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)