日期运算begin_Time:=end_Time-interval '1' year中如何使得时间间隔数和时间单位参数化,谢谢!

解决方案 »

  1.   

    时间单位是年吗?如果是的话用可以用add_month()函数。begin_Time:= ADD_MONTHS(end_Time, -12*'year_num');
      

  2.   


    用动态sql来做可以比如
    SQL> set verify off
    SQL> set serverout on
    SQL> declare
      2  t date;
      3  begin
      4  execute immediate 'select sysdate-interval ''&times'' &intervaltype from du
    al' into t;
      5  dbms_output.put_line(to_char(t, 'yyyy-mm-dd hh24:mi:ss'));
      6  end;
      7  /
    输入 times 的值:  2
    输入 intervaltype 的值:  day
    2009-07-13 18:38:25PL/SQL 过程已成功完成。