错误 - java.sql.Timestamp中不能转换为java.sql.Date中的JFreeChart
,而我检索从我的数据库中的数据添加到使用JFreeChart的,我得到了错误的图表:错误 - java.sql.Timestamp中不能转换为java.sql.Date中的JFreeChart
java.sql.Timestamp cannot be cast to java.sql.Date
我有四列前三检索正确使用的情况下,但同时通过最后一列去它转到正确的情况下:
case Types.TIMESTAMP: {
但后来这一部分发生错误:
Date date = (Date) resultSet.getObject(column);
数据库内的数据格式如下(HH,MM,SS)。
编辑 - 也想添加这个类是包含在JFreeCharts API - JDBCCategoryDataset.java
首先,不使用的时候java.sql.Date
- 它不会一代产量您想要的结果..除非你想你的时间设置为0当前时区
从文档:
To conform with the definition of SQL DATE, the millisecond values wrapped by a java.sql.Date instance must be 'normalized' by setting the hours, minutes, seconds, and milliseconds to zero in the particular time zone with which the instance is associated.
而且为什么要使用ResultSet.getObject
,当您只需使用ResultSet.getDate()
或ResultSet.getTime()
或ResultSet.getTimestamp()
时,您可以使用其中任何一个seocnd二。
然后,如果你必须使用一个Date对象,使java.util.Date
像这样
java.util.Date yourDate = new java.util.Date(resultSet.getTimestamp("Column").getTime());
,或者如果在数据库中的字符串"(HH,MM,SS)"
,那么你可能希望得到一个字符串,并使用格式化像SimpleDateFormat
SimpleDateFormat sdf = new SimpleDateFormat("(hh,MM,ss)");
Date aDate = sdf.parse(resultSet.getString("column");
I Still不明白为什么我会收到错误 - 异常:即使将java.sql.Timestamp更改为'java.util.Date',也不能将其转换为java.sql.Date @JavaDevil – mussi89
什么是您所在列的数据类型检索?你做了什么来改变它?你是否明确地使用了'java.util.Date'来表示对象的数据类型和转换? –
数据类型是数据库中的日期,当它通过大小写时,它被标识为时间戳,在时间戳情况下执行以下代码,包括您建议的上述内容:java.util.Date date = new java.util.Date(了ResultSet.getTimestamp(列).getTime()); \t \t \t \t Number value = new Long(date.getTime()); ----我只是改变了getTimeStamp中的“列”,因为它是被回想的属性。 @javaDevil – mussi89
不要使用'java.sql.Date'存储时间,使用'java.util.Date'或使用'java.sql.Timestamp' –
@JavaDevil我仍然得到这个错误后,即使将其更改为java.util.Date。错误:异常:java.sql.Timestamp不能转换为java.sql.Date – mussi89