select * form tbname where date_column<(d_today+n);

解决方案 »

  1.   

    'select * from table where date_column < to_date('|| to_chare(d_today+n) ||','yyyymmdd')'
      

  2.   

    这样也太简单了!
    d_today和n 编程语言定义变量啊
      

  3.   

    日期变量可以直接与int变量相加的.转换成字符变量就得用to_char().可以看看to_char()的参数.
      

  4.   

    'select * from table_name where to_char(date_column,''yyyymmdd'')<to_char(d_today+n)'
    在字符串里有单引号的,用双引号即可,试试看!
      

  5.   

    procedure test4
      is
      d_today date;
      n       integer;
      s_out   varchar(100);
      begin
         select sysdate into d_today from dual;
         n := 3; 
           s_out := 'select * from table where date_column < to_date('|| to_char(d_today + n,'yyyymmdd') ||',''yyyy-mm-dd'')';
           dbms_output.put_line(s_out);
      end test4;
    输出:
    select * from table where date_column < to_date(20040917,'yyyy-mm-dd')
      

  6.   

    select * form tbname where date_column<(d_today+n);