2016-06-30 24 views
0

在oracle中,如果我們如何通過Oracle中的變量和返回日期

SELECT to_char(sysdate) FROM dual 

執行這個查詢,我們會得到當前的日期。

但是爲了這個,我想傳遞一個變量,比如說如果我傳遞2,我想讓日期返回2天。

如果通過3我想在3天前取回日期。

我怎麼能在oracle中實現它?

回答

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. 
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;