如果我们在oracle中
SELECT to_char(sysdate) FROM dual
执行此查询,我们将获取当前日期。
但为此,我想传递一个变量,比如说,如果我通过2我想要获得2天的日期。
如果通过3我想在3天前获得日期。
我如何在oracle中实现它?
答案 0 :(得分:1)
执行以下脚本时,SQL Developer将询问x的值。 (按F5,不要使用CTRL + ENTER)
<强>查询强>
SET SERVEROUTPUT ON
select sysdate - &x from dual;
undefine x;
我输入的值为2,它返回值2016年6月28日
<强>输出强>
old: select sysdate - &x from dual
new: select sysdate - 2 from dual
SYSDATE-2
---------
28-JUN-16
1 row selected.
答案 1 :(得分:0)
create or replace function getDate(p_dNum number:=0) return date is
begin
return sysdate - p_dNum;
end;
然后像你这样在你的SQL中调用函数
select to_char(getDate(p_dNum => 2),'yyyy/mm/dd')
from dual;