如何在sql server中获取当前日期时间?

时间:2012-06-04 04:22:26

标签: java sql sql-server java-ee struts

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

1 个答案:

答案 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实例包含的毫秒值必须通过在特定时区中将小时,分钟,秒和毫秒设置为零来“标准化”。实例是关联的。