2012-06-27 40 views
0

是我的存儲過程獲取時間爲00:00:00.0以下

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) 
    values(@request_id,@host,@created_on) 

end 

當我投用SELECT CAST(@created_on as datetime)

我得到的輸出2012-06-22 00:00:00.0時間是00:00:00.0

我想把它當作12:45:06.0日期。爲什麼我在所有地方都得到0?

編輯: 從Java調用代碼

Date date = new Date(); 
Date insert_date = new java.sql.Date(date.getTime()); 
String insertquery = "{ call sp_process_job (?,?,?) }"; 

cs = con.prepareCall(insertquery.toString()); 
      cs.setString(1, id); 
      cs.setString(2, host); 
      cs.setDate(3, (java.sql.Date) insert_date); 
cs.execute(); 

      con.commit(); 
+2

'@ created_on'的值是什麼?你調用這個函數的參數是什麼? – Seph

+0

你打算如何調用這個存儲過程?爲什麼你將日期時間值作爲字符串傳遞?爲什麼使用'set dateformat'而不是使用'CONVERT'指定格式?是否真的只是返回轉換後的日期時間值,然後在'insert'中使用字符串值並依賴於隱式轉換? –

+0

請看我的編輯過的文章 – happy

回答

0

上述過程我想你應該在Java代碼中,而不是java.sql.date節省使用java.sql.Timestamp僅日期沒有時間。還有cs.setTimestamp

java.sql.Timestamp insert_date = new java.sql.Timestamp(date.getTime()); 
    .... 
    cs.setTimestamp(3, insert_date); 
相關問題