Plsql 如何将当前系统时间与整数值相加为分钟?

Plsql 如何将当前系统时间与整数值相加为分钟?,plsql,oracle11g,oracle-sqldeveloper,Plsql,Oracle11g,Oracle Sqldeveloper,我想为会话超时创建注销时间 我创建了一个有2个输入和1个输出参数的过程 其中一个输入值是“系统时间”,另一个值是声明为“分钟”的数字 这是我的查询,但有问题并显示此错误: ORA-00907:缺少右括号 90700000-“缺少右括号” SQL: 你在问如何在约会中增加分钟数 select sysdate + number_of_minutes/(24*60) from dual; sysdate返回日期数据类型的值,因此不需要 使用将sysdate显式转换为日期数据类型 to_date()函

我想为会话超时创建注销时间

我创建了一个有2个输入和1个输出参数的过程

其中一个输入值是“系统时间”,另一个值是声明为“分钟”的数字

这是我的查询,但有问题并显示此错误:

ORA-00907:缺少右括号
90700000-“缺少右括号”

SQL:


你在问如何在约会中增加分钟数

select sysdate + number_of_minutes/(24*60) from dual;
  • sysdate
    返回日期数据类型的值,因此不需要 使用将
    sysdate
    显式转换为日期数据类型
    to_date()
    函数

  • 如果您只想给
    sysdate
    返回的值加上几分钟,也不需要使用
    to_char()
    函数

  • INTERVAL'40'MINUTE
    构造中的minutes文本必须用单引号括起来:
    INTERVAL'40'MINUTE

  • 话虽如此,您可以将查询重写如下:

    SELECT sysdate + INTERVAL '40' MINUTE
      FROM dual;
    
    在过程中,由于不能在
    INTERVAL MINUTE
    构造中包含变量,因此可以使用
    numtodsinterval()
    函数

    此外,为了消除不必要的上下文切换,您可以在不查询
    dual
    表的情况下进行所有计算:

    p_out_parameter := p_input_date + numtodsinterval(p_input_time, 'minute');  
    
    p_out_parameter := p_input_date + numtodsinterval(p_input_time, 'minute');