在Oracle SQL中通过变量传递时间间隔

在Oracle SQL中通过变量传递时间间隔,第1张

概述此查询根据给定的间隔时间10返回值. SELECT TO_CHAR((TO_DATE('23:20:20','HH24:MI:SS') - INTERVAL '10' MINUTE), 'HH24:MI:SS') FROM DUAL; 输出: 23:10:20 我想使用下面的代码通过变量传递这个分钟间隔: declaretest1 varchar(30);begintest1:=18;S 此查询根据给定的间隔时间10返回值.

SELECT TO_CHAR((TO_DATE('23:20:20','HH24:MI:SS') - INTERVAL '10' MINUTE),'HH24:MI:SS') FROM DUAL;

输出:

23:10:20

我想使用下面的代码通过变量传递这个分钟间隔:

declaretest1 varchar(30);begintest1:=18;SELECT TO_CHAR((TO_DATE('23:20:20','HH24:MI:SS') - INTERVAL ||test1|| MINUTE),'HH24:MI:SS')  FROM DUAL; end;

但它不起作用 – 错误是

PL/sql: ORA-00904: “MINUTE”: invalID IDentifIEr

请帮助我.谢谢!

解决方法 你不能这样做,因为它必须是一个字符串文字,而不是一个变量.但你可以使用 the numtodsinterval() function代替:

declare  test1 number;begin  test1:=18;  SELECT TO_CHAR(TO_DATE('23:20:20','HH24:MI:SS')   - NUMTODSINTERVAL(test1,'MINUTE'),'HH24:MI:SS')  INTO <something>  FROM DUAL;end;/

SQL Fiddle,包括一个非常简单的功能版本.

总结

以上是内存溢出为你收集整理的在Oracle SQL中通过变量传递时间间隔全部内容,希望文章能够帮你解决在Oracle SQL中通过变量传递时间间隔所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1157908.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存