Derby

通過將持續時間添加到 derby 數據庫中的開始日期來更新結束日期

  • May 14, 2021

我使用 Derby 數據庫創建了表。

CREATE TABLE PROJECT
(PID  INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY,
PSDATE DATE,
PDURATION INTEGER,
PEDATE DATE,
PRIMARY KEY (PID)
);

我試圖更新此項目表中的結束日期,將持續時間添加到開始日期。

UPDATE PROJECT
SET PEDATE = ADD_MONTHS (PROJECT.PSDATE, PROJECT.PDURATION)
WHERE PID = PROJECT.PID;

但我得到以下錯誤

"[Exception, Error code 30,000, SQLState 42Y03] 'ADD_MONTHS' is not recognized as a function or 
procedure.
Line 1, column 1"

後來我嘗試了下面的程式碼

select {fn TIMESTAMPADD(SQL_TSI_DAY, +pduration, psdate)}
from name.PROJECT
where pid = project.PID

我可以使用 TIMESTAMPADD 函式來更新 Derby 數據庫中的項目表嗎?提前感謝幫助我解決這個問題。

UPDATE PROJECT 
SET PEDATE = DATE( {fn TIMESTAMPADD(SQL_TSI_MONTH, PDURATION, PSDATE)} );

此查詢(由Akina提供)在將持續時間添加到開始日期時更新我的結束日期。

引用自:https://dba.stackexchange.com/questions/291465