如何在oracle中传递变量并返回日期

时间:2016-06-30 05:47:58

标签: sql oracle date

如果我们在oracle中

SELECT to_char(sysdate) FROM dual  

执行此查询,我们将获取当前日期。

但为此,我想传递一个变量,比如说,如果我通过2我想要获得2天的日期。

如果通过3我想在3天前获得日期。

我如何在oracle中实现它?

2 个答案:

答案 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;