SQL函数。退货日期+几天

时间:2013-10-16 22:22:36

标签: sql oracle function sysdate

我是SQL开发人员编码的新手,我真的不知道如何编写所有代码,我需要一些帮助。 我需要创建一个简单的函数来返回一个返回日期,假设最终会像这样结束:

SQL> SELECT get_returndate(7)
     FROM dual;
_________
GET_RETURNDATE(7)
----------------------------
2013-10-21:23:59
___

假设采用1个参数,然后将sysdate + parameter作为日期返回。

这就是我得到的

create or replace
  function get_retdate(
    p_days number)
  return date
  as
    v_retdate date;
    v_currdate date := sysdate;
  begin
    select v_date + p_days
    into v_retdate
    return
    from dual;
  end;

我的问题是我不知道如何将参数添加到函数中的局部变量,因为我对SQL和函数非常新,所以我没有得到任何...我打赌这很容易我对SQL不太满意。

3 个答案:

答案 0 :(得分:0)

我很高兴你的初学者尝试 Oracle编程 ,并且你接近它。但是你必须查看手册。

以下是你应该离开的方式:

 create or replace function get_retdate( p_days number)
 return date
 as
   v_retdate date;
   v_currdate date := sysdate;
 begin
   select v_currdate + p_days into v_retdate from dual;
   return v_retdate;
 end get_retdate;
 /

答案 1 :(得分:-1)

如果您使用的是MS SQL,请使用DATEADD:http://www.w3schools.com/sql/func_dateadd.asp

示例:

DECLARE SevenDaysFromNow DATETIME = DATEADD(d,7,GETDATE())

答案 2 :(得分:-1)

Transact-SQL(SQL Server)提供了一个非常简单的解决方案,不需要存储过程:

SELECT GETDATE() + 7;

给我的时区:

2013-10-24 00:29:54.137