わかりました、質問の最初の部分の回答を得たので、これが 2 番目の部分です。:-) 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 + interval '1' day" を指定すると、"ORA-30081: 日時/間隔演算のデータ型が無効です" (:DateEnd は 31-MAY-2012 にバインドされます)。「convert_date_to_id(add_months(:DateEnd, 1))」を実行すると、正常に動作します。何かご意見は?ありがとう。
ETA: これは SSRS 2008 R2 プロジェクトであり、レポート パラメーターで DateTime パラメーターとして定義されていることを明確にする必要がありDateBegin
ますDateEnd
。私の現在の回避策は、:DateEnd
クエリ パラメータをレポート パラメータ + 1 に等しく設定する@DateEnd
ことですが、いつかこれを適切に文書化するのを忘れて、レポートを維持しようとしている人を混乱させるのではないかと心配しています (それは私かもしれません)。 . 前に提案したように、文字列パラメーターを渡したくありません。