좋아요, 제 질문의 첫 번째 부분에 답이 있습니다. 두 번째 부분은 여기에 있습니다. :-) PLSQL 쿼리에서, 나는 다음과 같다 기준이 있습니다Oracle 쿼리의 함수 호출에서 datetime 연산 수행
where Doc3.clinicalDate >= ml.convert_date_to_id(:DateBegin)
and Doc3.clinicalDate < ml.convert_date_to_id(:DateEnd)
을 지금을, 내가 사용하지 않습니다 DateEnd 자체 - 그래서 내가 일일를 추가 할이이 날짜를 비교할 때 자정까지, 자정에 다음 일이 걸립니다. 불행하게도, 내가
where Doc3.clinicalDate >= ml.convert_date_to_id(:DateBegin)
and Doc3.clinicalDate < ml.convert_date_to_id(:DateEnd + 1)
을 할 때 얻을 "ORA-06553을 : PLS-306 : 잘못된 번호 또는 'CONVERT_DATE_TO_ID'에 대한 호출에서 인수의 유형". ": DateEnd + interval '1 day"는 "ORA-30081 : datetime/interval 산술 연산에 대해 유효하지 않은 데이터 유형"을 표시합니다 (여기서 : DateEnd는 2012 년 5 월 31 일에 바인딩됩니다). "convert_date_to_id (add_months (: DateEnd, 1))"을 수행하면 정상적으로 작동합니다. 이견있는 사람? 감사.
ETA :이 보고서는 SSRS 2008 R2 프로젝트이고 DateBegin
및 DateEnd
은 DateTime 매개 변수로 보고서 매개 변수에 정의되어 있습니다. 현재 해결 방법은 :DateEnd
검색어 매개 변수를 @DateEnd
보고서 매개 변수 + 1과 동일하게 설정하는 것이지만 언젠가는이를 올바르게 문서화하는 것을 잊어 버리고 보고서를 유지하려고하는 사람을 혼동하는 것을 혼란스럽게합니다. 나를). I 은 앞에서 제안한 것처럼 문자열 매개 변수를 전달하려고하지 않습니다.
어떤 데이터 유형 'clinicalDate'이며,'convert_date_to_id'에 대한 매개 변수와 리턴 타입은 무엇입니까? –
FUNCTION Convert_Date_to_ID (일자 IN 날짜) 반환 값 : BEGIN RETURN (thedate-to_date ('01/01/1960 ','mm/dd/yyyy ')) * 1000000 * 86400; END; – SarekOfVulcan