我正在嘗試創建一個DB2 UDF,它將輸入日期並返回新日期並添加了幾個月。這一步的查詢語法是使用DB2 UDF返回添加日期?
select date + 12 months from sysibm.sysdummy1;
的UDF裏面,我不能得到這個工作
monthsToAdd INTEGER;
SET monthsToAdd=4;
set result= inputDate + monthsToAdd + MONTHS;
return result;
它說
SQL狀態:42816 供應商代碼: -182 消息:[SQL0182]日期,時間或時間戳記表達式無效。原因。 。 。 。 。 :發生以下情況之一: - 加法操作數是日期,另一個不是日期持續時間。 - 加法的操作數是一個時間,另一個不是持續時間。 - 加法操作數是時間戳,另一個不是持續時間。 - 減法操作數是一個日期,另一個不是日期,字符或日期持續時間。 - 減法操作數是一個時間,另一個不是時間,字符或持續時間。 - 減法操作數是時間戳,另一個不是時間戳,字符或持續時間。恢復。 。 。 :更正算術表達式,使其包含有效的日期,時間或時間戳表達式。再次嘗試請求。
是該錯誤的編譯時錯誤(您可以創建過程嗎?)還是運行時錯誤?你能發佈整個創建過程嗎? – 2011-01-26 13:19:54
任何不使用DB2標量函數ADD_MONTHS的原因,自2008年1月的DB2 for IBM i 6.1開始提供;或許還在v5r4上?作爲參考:在[IBM i 7.2->數據庫 - >參考 - > SQL參考 - >內置函數 - >標量函數 - > ADD_MONTHS](http://www.ibm.com/support/knowledgecenter /en/ssw_ibm_i_72/db2/rbafzscaaddmonths.htm) – CRPence 2016-10-09 20:25:00