0

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

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

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

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

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

SQL:

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

2 回答 2

2
  1. sysdate返回日期数据类型的值,因此无需sysdate使用函数显式转换为日期数据类型 to_date()

  2. 如果to_char()您只想将几分钟的时间添加到sysdate.

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

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

SELECT sysdate + INTERVAL '40' MINUTE
  FROM dual;

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

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

p_out_parameter := p_input_date + numtodsinterval(p_input_time, 'minute');  
于 2013-08-24T09:16:16.860 回答
0

您在问如何在日期上添加分钟数?

select sysdate + number_of_minutes/(24*60) from dual;
于 2013-08-24T09:09:13.583 回答