Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
错误-无法在JFreeChart中将java.sql.Timestamp转换为java.sql.Date_Java_Sql_Jfreechart - Fatal编程技术网

错误-无法在JFreeChart中将java.sql.Timestamp转换为java.sql.Date

错误-无法在JFreeChart中将java.sql.Timestamp转换为java.sql.Date,java,sql,jfreechart,Java,Sql,Jfreechart,当我从数据库中检索数据以使用JFreeChart添加到图表时,出现以下错误: java.sql.Timestamp cannot be cast to java.sql.Date 我有四列,前三列是使用case正确检索的,但在浏览最后一列时,会转到正确的case: case Types.TIMESTAMP: { 但这一部分出现了错误: Date date = (Date) resultSet.getObject(column); 数据库中的数据格式如下(HH、MM、SS) 编辑- 还想添加

当我从数据库中检索数据以使用JFreeChart添加到图表时,出现以下错误:

java.sql.Timestamp cannot be cast to java.sql.Date
我有四列,前三列是使用case正确检索的,但在浏览最后一列时,会转到正确的case:

case Types.TIMESTAMP: {
但这一部分出现了错误:

Date date = (Date) resultSet.getObject(column);
数据库中的数据格式如下(HH、MM、SS)

编辑- 还想添加JFreeCharts API中包含的这个类-jdbCategoryDataset.java

首先,不要使用时间-它不会产生您想要的结果。。。除非您希望当前时区的时间设置为0

Date date = new Date(((Timestamp)resultSet.getObject(column)).getTime());
从文档:

为了符合SQL日期的定义,必须通过将实例关联的特定时区中的小时、分钟、秒和毫秒设置为零来“规范化”java.SQL.DATE实例包装的毫秒值

还有,当您可以使用or或您想使用seocnd两个选项中的任何一个时,为什么要使用
ResultSet.getObject
并强制转换呢

然后,如果必须使用date对象,请这样做

或者,如果它作为字符串
(HH,MM,SS)
存在于数据库中,那么您可能需要获取一个字符串并使用类似


不要使用
java.sql.Date
来存储时间,使用
java.util.Date
或使用
java.sql.Timestamp
@JavaDevil即使将其更改为java.util.Date,我仍然会收到此错误。错误:异常:java.sql.Timestamp不能转换为java.sql.Date我仍然得到相同的错误异常:java.sql.Timestamp不能转换为java.sql.Date我仍然不明白我收到错误的原因-异常:java.sql.Timestamp不能转换为java.sql.Date,即使将其更改为“java.util.Date”@JavaDevilWhat是列的数据类型你在找回什么?你做了什么来改变它?您是否像
java.util.Date
一样明确地将其用于对象的数据类型和强制转换中?数据类型是数据库中的日期,当它通过案例时,它被标识为时间戳,在时间戳案例中执行以下代码,包括您建议的上述代码:java.util.Date Date=new java.util.Date(resultSet.getTimestamp(column.getTime());Number value=new Long(date.getTime());----我刚刚更改了getTimestamp中的“column”,因为它是被检索的属性。@javaDevilAnd这仍然会给您带来强制转换异常?而逐步执行调试器肯定会指向这一行?您使用的是什么DBMS?
java.util.Date yourDate = new java.util.Date(resultSet.getTimestamp("Column").getTime());
SimpleDateFormat sdf = new SimpleDateFormat("(hh,MM,ss)");
Date aDate = sdf.parse(resultSet.getString("column");