我想将sys日期传递给我的程序。 以下是我的代码段
DateFormat dateFormat = new SimpleDateFormat("mm/dd/yyyy");
Date date = new Date();
String insertquery="{ call sp_process_job (?,?,?) }";
cs = con.prepareCall(insertquery.toString());
cs.setString(1,id);
cs.setString(2,host);
cs.setDate(19,(java.sql.Date) date);
cs.execute();
con.commit();
我的存储过程
create procedure sp_process_job (@request_id varchar(25),@host varchar(20),@created_on varchar(25)) as
begin
set dateformat mdy
SELECT CAST(@created_on as datetime)
insert into t_job_details(request_id,host,created_on,run_date)
values(@request_id,@host,@created_on)
end
收到此错误
java.util.Date无法强制转换为java.sql.Date。
答案 0 :(得分:1)
您无法将java.util.Date
转换为java.sql.Date
,因为第二个是第一个的子类。
你可以这样做:
cs.setDate(19, new java.sql.Date(date.getTime()));
请记住java.sql.Date
除了月,日和年之外都会有所有内容。正如java.sql.Date
javadoc所说:
为了符合SQL DATE的定义,
java.sql.Date
实例包含的毫秒值必须通过在特定时区中将小时,分钟,秒和毫秒设置为零来“标准化”。实例是关联的。