1

我想将 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。

4

1 回答 1

1

您不能java.util.Date转换为,java.sql.Date因为第二个是第一个的子类。

你可以这样做:

cs.setDate(19, new java.sql.Date(date.getTime()));

请记住,java.sql.Date除了月份、日期和年份之外,所有内容都将归零。正如java.sql.Datejavadoc所说:

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

于 2012-06-04T04:28:54.090 回答