Pra*_*Roy 1 java sql time date
我在数据库中调用存储过程.它的两个参数需要sql日期格式的日期和时间.
String x = new SimpleDateFormat("MM-dd-yyyy").format(new Date()) + " 00:00:00 AM";
String y = new SimpleDateFormat("MM-dd-yyyy").format(new Date()) + " 11:59:00 PM";
Date fromDate = null;
Date toDate = null;
try {
fromDate = new SimpleDateFormat("MM-dd-yyyy HH:mm:ss a").parse(x);
toDate = new SimpleDateFormat("MM-dd-yyyy HH:mm:ss a").parse(y);
} catch (ParseException ex) {
}
CallableStatement proc_stmt = con.prepareCall("{ call someproc(?,?) }");
proc_stmt.setDate(1, (java.sql.Date) fromDate);
proc_stmt.setDate(2, (java.sql.Date) toDate);
Run Code Online (Sandbox Code Playgroud)
我相信如果我只发送日期(不包括时间),代码可以工作,但它对我没用,因为数据库不能生成正确的结果.当我运行上面的代码时,我得到了
ClassCastException:java.util.Date cannot be cast to java.sql.Date
Run Code Online (Sandbox Code Playgroud)
有解决方案吗
使用java.sql.Timestamp包含sql字段的日期和时间的类,以及CallableStatement#setTimestamp:
proc_stmt.setTimestamp(1, new java.sql.Timestamp(fromDate.getTime());
Run Code Online (Sandbox Code Playgroud)