Bug #10717 Driver fails when attempting to convert TIMESTAMP values
Submitted: 18 May 2005 15:54 Modified: 18 May 2005 16:04
Reporter: Luther Maloney Email Updates:
Status: Not a Bug Impact on me:
None 
Category:Connector / J Severity:S1 (Critical)
Version:3.1.8 OS:Any (all)
Assigned to: CPU Architecture:Any

[18 May 2005 15:54] Luther Maloney
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.
[18 May 2005 16:04] Mark Matthews
Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.mysql.com/documentation/ and the instructions on
how to report a bug at http://bugs.mysql.com/how-to-report.php
[18 May 2005 16:05] Mark Matthews
See http://dev.mysql.com/doc/connector/j/en/cj-upgrading-3-0-to-3-1.html