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

时间:2013-08-24 08:58:27

标签: plsql oracle11g oracle-sqldeveloper

我想为会话超时创建退出时间

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

输入值之一是'系统时间',另一个值是声明为'分钟'的数字

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

  

ORA-00907:缺少右括号
  00907. 00000 - “缺少右括号”

SQL:

SELECT to_char((to_date(sysdate,'HH24:MI:SS') + INTERVAL 40 MINUTE,'HH24:MI:SS') 
FROM dual;

2 个答案:

答案 0 :(得分:2)

  1. sysdate返回日期数据类型的值,因此不需要 使用显式转换sysdate到日期数据类型 to_date()功能。

  2. 如果您只想为to_char()返回的值添加几分钟,也无需使用sysdate功能。

  3. INTERVAL 40 MINUTE构造中的分钟文字必须用单引号括起来:INTERVAL '40' MINUTE

  4. 话虽如此,您可以按如下方式重写查询:

    SELECT sysdate + INTERVAL '40' MINUTE
      FROM dual;
    

    在一个过程中,因为您无法在INTERVAL <<variable>> MINUTE构造中包含变量,所以可以使用numtodsinterval()函数。

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

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

答案 1 :(得分:0)

您问的是如何在日期上添加几分钟?

select sysdate + number_of_minutes/(24*60) from dual;