有如下函数,如何给date型的startDateTime加nIntervals秒呢?
我下面的函数报错:PLS-00363
CREATE OR REPLACE FUNCTION BW_COMMON_DateAdd (
IntervalType char(4),
nIntervals number,
startDateTime date
) RETURN date
BEGIN IF (trim(IntervalType) = 's')
THEN
startDateTime := startDateTime + nIntervals/(24*60*60);
END IF;
RETURN startDateTime;END BW_COMMON_DateAdd;
/
我下面的函数报错:PLS-00363
CREATE OR REPLACE FUNCTION BW_COMMON_DateAdd (
IntervalType char(4),
nIntervals number,
startDateTime date
) RETURN date
BEGIN IF (trim(IntervalType) = 's')
THEN
startDateTime := startDateTime + nIntervals/(24*60*60);
END IF;
RETURN startDateTime;END BW_COMMON_DateAdd;
/
yyyy-mm-dd hh24:mi:ss') from dual;TO_CHAR(SYSDATE,'YY TO_CHAR(SYSDATE+2/2
------------------- -------------------
2008-02-04 15:05:31 2008-02-04 15:05:33+n/24/3600
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') "Date",
to_char(sysdate+1/24/60/60,'yyyy-mm-dd hh24:mi:ss') "1 SecondLater"
from dual
--------------------------
Date 1 SecondLater
1 2007-02-04 15:06:23 2007-02-04 15:06:24
以下这条语句出错。
startDateTime := startDateTime + nIntervals/(24*60*60); startDateTime是输入变量,只读。解决方案:增加一个临时变量;或者IF (trim(IntervalType) = 's') THEN
RETURN startDateTime + nIntervals/(24*60*60);
ELSE
RETURN NULL;
END IF;