我想为会话超时创建退出时间
我创建了一个具有2个输入和1个输出参数的过程
输入值之一是'系统时间',另一个值是声明为'分钟'的数字
这是我的查询,但有问题并显示此错误:
ORA-00907:缺少右括号
00907. 00000 - “缺少右括号”
SQL:
SELECT to_char((to_date(sysdate,'HH24:MI:SS') + INTERVAL 40 MINUTE,'HH24:MI:SS')
FROM dual;
答案 0 :(得分:2)
sysdate
返回日期数据类型的值,因此不需要
使用显式转换sysdate
到日期数据类型
to_date()
功能。
如果您只想为to_char()
返回的值添加几分钟,也无需使用sysdate
功能。
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');
答案 1 :(得分:0)
您问的是如何在日期上添加几分钟?
select sysdate + number_of_minutes/(24*60) from dual;