好的,我得到了我的問題的第一部分回答,所以這裏是第二部分。 :-)在PLSQL查詢,我有一個看起來像這樣的標準:在Oracle查詢中的函數調用中做日期時間數學
where Doc3.clinicalDate >= ml.convert_date_to_id(:DateBegin)
and Doc3.clinicalDate < ml.convert_date_to_id(:DateEnd)
現在,我不想使用:DateEnd本身 - 我想加1的日子,所以,當它比較日期時間午夜,我得到的下一個天的午夜。不幸的是,當我做
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 +間隔 '1' 天」 給我 「ORA-30081:用於日期時間/間隔算術無效的數據類型」(其中:DateEnd綁定到31-MAY-2012)。如果我做「convert_date_to_id(add_months(:DateEnd,1))」,它工作正常。有什麼想法嗎?謝謝。
ETA:我應該說明這是一個SSRS 2008 R2項目,並且DateBegin
和DateEnd
在報告參數中定義爲DateTime參數。我當前的解決方法涉及將:DateEnd
查詢參數設置爲等於@DateEnd
報告參數+ 1,但我擔心有一天我會忘記正確記錄此問題,並將任何試圖維護此報告的人混淆(並且可能是我)。我不想通過字符串參數,如之前建議。
哪些數據類型是'clinicalDate',以及'convert_date_to_id'的參數和返回類型是什麼? –
函數Convert_Date_to_ID(thedate IN Date)RETURN NUMERIC AS BEGIN RETURN(thedate-to_date('01/01/1960','mm/dd/yyyy'))* 1000000 * 86400; END; – SarekOfVulcan