好的,我的问题的第一部分得到了回答,所以这是第二部分。:-) 在 PLSQL 查询中,我的条件如下所示:
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 绑定到 2012 年 5 月 31 日)。如果我执行“convert_date_to_id(add_months(:DateEnd, 1))”,它工作正常。有什么想法吗?谢谢。
ETA:我应该澄清这是一个 SSRS 2008 R2 项目,并且DateBegin
在DateEnd
报告参数中定义为 DateTime 参数。我当前的解决方法是将:DateEnd
查询参数设置为等于@DateEnd
报告参数 + 1,但我担心有一天我会忘记正确记录这一点,并混淆试图维护报告的人(可能是我) . 如前所述,我不想传递字符串参数。