私はDB2 UDFを作成して、日付を入力して何ヶ月も追加した新しい日付を返します。このステップのためのクエリ構文は、私は、これはそれが言う追加された日付を戻すDB2 UDF?
monthsToAdd INTEGER;
SET monthsToAdd=4;
set result= inputDate + monthsToAdd + MONTHS;
return result;
動作させることはできませんUDF内部
select date + 12 months from sysibm.sysdummy1;
を使用することです
SQL状態:42816 ベンダコード: -182 メッセージ:[SQL0182]日付、時刻、またはタイムスタンプ式が無効です。原因。 。 。 。 。 :次のいずれかが発生しました: - 加算のオペランドは日付であり、もう1つは日付期間ではありません。 - 加算のオペランドは時間であり、もう一つは時間ではありません。 - 加算のオペランドはタイムスタンプであり、もう一方は継続時間ではありません。 - 減算のオペランドは日付であり、もう一方は日付、文字、または日付期間ではありません。 - 減算のオペランドは時間であり、もう1つは時間、文字、または時間ではありません。 - 減算のオペランドはタイムスタンプであり、もう1つはタイムスタンプ、文字、または期間ではありません。回復。 。 。 :有効な日付、時刻、またはタイムスタンプ式を含むように算術式を訂正してください。リクエストをもう一度お試しください。
はエラーAはコンパイル時エラー(プロシージャを作成できますか?)または実行時エラー? Create Procedure stmt全体を投稿できますか? –
2008年1月のDB2 for IBM i 6.1以降で使用可能なDB2スカラー関数ADD_MONTHSを使用しない理由。当時のv5r4にはおそらくまだありますか?参考:「IBM i 7.2->データベース - >参照 - > SQL参照 - >組み込み関数 - >スカラー関数 - > ADD_MONTHS」の最新リリース文書(http://www.ibm.com/support/knowledgecenter) /en/ssw_ibm_i_72/db2/rbafzscaaddmonths.htm) – CRPence