在处理前将varchar2的字段转换成date的类型进行计算。to_char(column1,'YYYY-MM-DD HH24:MI:SS') + 时间值。要注意的是"时间值"只能是一个数字,因为在oracle中进行日期值计算时不允许两个date类型的相加。另外,"时间值"是以天为单位的,也就是说:
                如果要加上1天,则使用date+1;
                如果加上1小时,则使用date+1/24;
                如果加上1分钟,则使用date+1/(24*60);
                如果加上1秒钟,则使用date+1/(24*60*60)。

解决方案 »

  1.   

    加上半年:select add_months(datefield,6) from tabname
      

  2.   

    select sysdate,sysdate + interval '6' month from dual;
      

  3.   

    SQL> --当前时间
    SQL> select sysdate from dual;SYSDATE
    -----------
    2005-9-14 9SQL> --加上6个月
    SQL> select sysdate + interval '6' month from dual;SYSDATE+INTERVAL'6'MONTH
    ------------------------
    2006-3-14 9:27:07SQL> --加上6小时
    SQL> select sysdate + interval '6' hour from dual;SYSDATE+INTERVAL'6'HOUR
    -----------------------
    2005-9-14 15:27:07