2012-06-04 104 views
1

我想將系統日期傳遞給我的過程。 下面是我的代碼片斷如何在sql server中獲取當前日期時間?

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

只要導入java.util。*; – Lucifer

+0

也做了同樣的...他們我得到錯誤「Date date = new Date();」這行 – Edward

+0

不直接相關,但請注意,用sp_在SQL Server SPROCS前綴不被視爲良好實踐 - http://stackoverflow.com/questions/238267/what-is-your-naming-convention-for-stored -procedures和http://stackoverflow.com/questions/871612/whats-the-best-practice-of-naming-stored-procedure-for-t-sql – StuartLC

回答

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實例包裝的毫秒值必須是「規範化」通過在特定時間的小時,分​​鍾,秒和毫秒設置爲零與實例關聯的區域。

相關問題