Description:
MySQL Server Version : 4.1.10
Connector/J version : 3.1.8
Java (JDK) version : 1.4.2_08
The 3.1.8 version of the driver fails when attempting to convert a column of type TIMESTAMP ( default value of 0000-00-00 00:00:00 ) to a string.
java.sql.SQLException: Cannot convert value '0000-00-00 00:00:00' from column 14 to TIMESTAMP.
at com.mysql.jdbc.ResultSet.getTimestampFromString(ResultSet.java:5410)
at com.mysql.jdbc.ResultSet.getStringInternal(ResultSet.java:2288)
at com.mysql.jdbc.ResultSet.getString(ResultSet.java:2203)
at org.apache.commons.dbcp.DelegatingResultSet.getString(DelegatingResultSet.java:174)
How to repeat:
MySQL Server Version : 4.1.10
Connector/J version : 3.1.8
Java (JDK) version : 1.4.2_08
Create a table that includes the following column definition :
<!-- table DDL Start -->
CREATE TABLE `user` (
`user_id` varchar(20) NOT NULL default '',
`passwd` varchar(36) NOT NULL default '',
`status` char(1) NOT NULL default '',
`first_name` varchar(50) NOT NULL default '',
`last_name` varchar(50) NOT NULL default '',
`mi` char(1) NOT NULL default '',
`location_code` varchar(35) NOT NULL default '',
`office_phone` varchar(14) NOT NULL default '',
`email_addr` varchar(80) NOT NULL default '',
`office_location` varchar(100) NOT NULL default '',
`create_user` varchar(20) NOT NULL default '',
`create_date` timestamp NOT NULL default '0000-00-00 00:00:00',
`apprv_user` varchar(20) default NULL,
`apprv_date` timestamp NOT NULL default '0000-00-00 00:00:00',
`mod_user` varchar(20) NOT NULL default '',
`mod_date` timestamp NOT NULL default CURRENT_TIMESTAMP,
`sys_admin` enum('N','Y') NOT NULL default 'N',
`bus_grp_admin` enum('N','Y') NOT NULL default 'N',
`app_admin` enum('N','Y') NOT NULL default 'N',
`job_title` varchar(30) NOT NULL default '',
`addr_1` varchar(50) NOT NULL default '',
`addr_2` varchar(50) NOT NULL default '',
`city` varchar(40) NOT NULL default '',
`state` char(2) NOT NULL default '',
`zip` varchar(10) NOT NULL default '',
PRIMARY KEY (`user_id`),
KEY `user_idx1` (`user_id`,`passwd`,`status`),
KEY `user_bus_grp_idx` (`bus_group_code`),
KEY `user_loc_idx` (`location_code`),
KEY `user_dt_idx` (`create_date`,`apprv_date`,`mod_date`),
KEY `user_auth_idx` (`sys_admin`,`bus_grp_admin`,`app_admin`),
KEY `user_status_idx` (`status`),
KEY `user_name_idx` (`first_name`,`last_name`,`mi`),
KEY `user_name_idx2` (`last_name`,`first_name`,`mi`),
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='Table containing user information; InnoDB free: 11264 kB; (`';
<!-- table DDL END -->
Insert a row into the table.
Write a short program that will attempt to select the row or rows from the table and display the data.
Suggested fix:
Columns of type TIMESTAMP (format 0000-00-00 00:00:00) are converted to string(s) properly without error.