PL/SQL 将 SYSDATE 添加 +7 天的函数
PL/SQL function to add +7 days to SYSDATE
我们应该创建一个函数,将当前 SYSDATE
添加 +7 天,并写入时间和分钟,但是,我的代码只显示日期,不显示时间。我究竟做错了什么?这可能很容易,但我就是想不通,而且网上也没有太多帮助。
到目前为止,我已经尝试过:
CREATE OR REPLACE FUNCTION get_date(n IN NUMBER)
RETURN DATE AS
BEGIN
RETURN to_date(to_char(SYSDATE, 'DD.MM.YYYY HH24:MI'),'DD.MM.YYYY HH24:MI') + n;
END get_date;
/
所以当你写的时候(7 是提前的天数):
SELECT get_date(7)
FROM dual;
它的结果是这样的:
GET_DATE(7)
----------------
09.03.2016
但是,如您所见,结果中未包含时间,而这正是我在本例中所需要的。任何帮助都将不胜感激。我敢肯定我太盲目了,但我现在已经盯着这段代码看得太久了,我承认我的失败。
您必须根据您的规范格式化结果,如
--create the function
CREATE OR REPLACE FUNCTION get_date(n IN NUMBER)
RETURN DATE AS
BEGIN
RETURN SYSDATE + n;
END get_date;
--call the function
SELECT TO_CHAR(get_date(7), 'DD.MM.YYYY HH24:MI')
FROM dual;
或者您对函数外没有格式化的新要求
--create the function
CREATE OR REPLACE FUNCTION get_date(n IN NUMBER)
RETURN VARCHAR2 AS
BEGIN
RETURN TO_CHAR(SYSDATE + n,'DD.MM.YYYY HH24:MI');
END get_date;
--call the function
SELECT get_date(7)
FROM dual;
您可以决定您的函数是 return date
还是 varchar
;您可以根据需要选择以下方式之一:
CREATE OR REPLACE FUNCTION get_date(n IN NUMBER)
RETURN varchar2 AS
BEGIN
RETURN to_char(SYSDATE + n, 'DD.MM.YYYY HH24:MI');
END get_date;
/
CREATE OR REPLACE FUNCTION get_date2(n IN NUMBER)
RETURN date AS
BEGIN
RETURN to_date(to_char(SYSDATE + n, 'DD.MM.YYYY HH24:MI'), 'DD.MM.YYYY HH24:MI');
END get_date2;
/
select to_char(get_date2(1), 'DD.MM.YYYY HH24:MI') from dual;
select get_date(1) from dual;
创建或替换函数 get_date(n IN NUMBER)
RETURN varchar2 是
dTmp 日期:=sysdate+n;
开始
RETURN to_char(dTmp, 'DD.MM.YYYY HH24:MI');
结束;
/
SELECT get_date(1) 来自双重;
我们应该创建一个函数,将当前 SYSDATE
添加 +7 天,并写入时间和分钟,但是,我的代码只显示日期,不显示时间。我究竟做错了什么?这可能很容易,但我就是想不通,而且网上也没有太多帮助。
到目前为止,我已经尝试过:
CREATE OR REPLACE FUNCTION get_date(n IN NUMBER)
RETURN DATE AS
BEGIN
RETURN to_date(to_char(SYSDATE, 'DD.MM.YYYY HH24:MI'),'DD.MM.YYYY HH24:MI') + n;
END get_date;
/
所以当你写的时候(7 是提前的天数):
SELECT get_date(7)
FROM dual;
它的结果是这样的:
GET_DATE(7)
----------------
09.03.2016
但是,如您所见,结果中未包含时间,而这正是我在本例中所需要的。任何帮助都将不胜感激。我敢肯定我太盲目了,但我现在已经盯着这段代码看得太久了,我承认我的失败。
您必须根据您的规范格式化结果,如
--create the function
CREATE OR REPLACE FUNCTION get_date(n IN NUMBER)
RETURN DATE AS
BEGIN
RETURN SYSDATE + n;
END get_date;
--call the function
SELECT TO_CHAR(get_date(7), 'DD.MM.YYYY HH24:MI')
FROM dual;
或者您对函数外没有格式化的新要求
--create the function
CREATE OR REPLACE FUNCTION get_date(n IN NUMBER)
RETURN VARCHAR2 AS
BEGIN
RETURN TO_CHAR(SYSDATE + n,'DD.MM.YYYY HH24:MI');
END get_date;
--call the function
SELECT get_date(7)
FROM dual;
您可以决定您的函数是 return date
还是 varchar
;您可以根据需要选择以下方式之一:
CREATE OR REPLACE FUNCTION get_date(n IN NUMBER)
RETURN varchar2 AS
BEGIN
RETURN to_char(SYSDATE + n, 'DD.MM.YYYY HH24:MI');
END get_date;
/
CREATE OR REPLACE FUNCTION get_date2(n IN NUMBER)
RETURN date AS
BEGIN
RETURN to_date(to_char(SYSDATE + n, 'DD.MM.YYYY HH24:MI'), 'DD.MM.YYYY HH24:MI');
END get_date2;
/
select to_char(get_date2(1), 'DD.MM.YYYY HH24:MI') from dual;
select get_date(1) from dual;
创建或替换函数 get_date(n IN NUMBER) RETURN varchar2 是
dTmp 日期:=sysdate+n;
开始
RETURN to_char(dTmp, 'DD.MM.YYYY HH24:MI');
结束;
/
SELECT get_date(1) 来自双重;