JDBC Error: Handling Unrepresentable Timestamp
In a Java application, you may encounter the error message "...'0000-00-00 00:00:00' can not be represented as java.sql.Timestamp" when querying a MySQL database table that contains timestamp values. This occurs when the table has a default timestamp value of '0000-00-00 00:00:00', which represents a date that is not valid according to the Java Timestamp class.
JDBC Solution: Configuring Zero Date Behavior
To resolve this issue without modifying the database table structure, you can configure the JDBC connection to handle zero-time values as null. This can be achieved by adding the following parameter to the JDBC URL:
zeroDateTimeBehavior=convertToNull
The modified JDBC URL would look like this:
jdbc:mysql://yourserver:3306/yourdatabase?zeroDateTimeBehavior=convertToNull
By adding this parameter, whenever the database returns a timestamp value of '0000-00-00 00:00:00', the JDBC driver will automatically convert it to a null value in the ResultSet. This eliminates the error and allows you to process the ResultSet without any issues.
The above is the detailed content of How to Handle \'0000-00-00 00:00:00\' Timestamp Errors in JDBC?. For more information, please follow other related articles on the PHP Chinese website!