【问题标题】:SQL function. Returning date + a few daysSQL 函数。返回日期+几天
【发布时间】:2013-10-16 22:22:35
【问题描述】:

我对 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。

【问题讨论】:

  • 由于您使用的是 Oracle,您只需键入:SELECT SYSDATE + 7 FROM DUAL;。您可以将其包装在一个函数中,但我不明白您为什么要打扰。

标签: sql oracle function sysdate


【解决方案1】:

我向您在 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;
 /

【讨论】:

    【解决方案2】:

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

    例子:

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

    【讨论】:

      【解决方案3】:

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

      SELECT GETDATE() + 7;
      

      在我的时区给出:

      2013-10-24 00:29:54.137
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-06-28
        • 2021-04-14
        • 2011-11-05
        • 2013-02-27
        • 1970-01-01
        • 2013-11-27
        • 1970-01-01
        • 2018-12-23
        相关资源
        最近更新 更多