2012-06-04 2 views
1

나는 프로 시저에 sys 날짜를 전달하려고합니다. 아래는 내 코드 SQL 서버에서 현재 날짜 시간을 얻는 방법?

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

같은 ... 그 (것)들 그들에 나는 "날짜 날짜 = 새로운 날짜()에 과실을 얻고있다;" 이 줄 – Edward

+0

직접 관련이 없지만 SQL Server SPROCS에 sp_ 접두사를 붙이면 좋은 연습으로 간주되지 않습니다. http://stackoverflow.com/questions/238267/what-is-your-naming-convention-for-stored - 절차 및 http://stackoverflow.com/questions/871612/whats-the-best-practice-of-naming-stored-procedure-for-t-sql – StuartLC

답변

1

당신은 java.sql.Datejava.util.Date 캐스팅 수 없습니다.

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

을 그리고 년, 월, 일이 밖으로 제로에 불과 java.sql.Date 모든 것을있을 것이라는 점을 기억하십시오

당신은 할 수 있습니다. java.sql.Date javadoc이 말하기를 :

의 SQL DATE의 정의에 부합하기 위해, java.sql.Date 인스턴스에 의해 포장 밀리 초 값은 특정 시간 0으로 시간, 분, 초 및 밀리 초를 설정하여 '정상화'해야 인스턴스가 연관된 영역.

관련 문제