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
请帮助我.谢谢!
解决方法 你不能这样做,因为它必须是一个字符串文字,而不是一个变量.但你可以使用 thenumtodsinterval()
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中通过变量传递时间间隔所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)