select to_date('2003-02-01','yyyy-mm-dd')+5*365+1 from dual;
考虑到闰年,赫赫

解决方案 »

  1.   

    select add_months(a,5*12) from dual;
      

  2.   

    select (to_date('2003-02-01','yyyy-mm-dd')+60) t_date from dual
    or 
    select (to_date(to_char('2003-02-01','yyyy-mm-dd'),'yyyy')+5) t_date from dual
      

  3.   

    select (to_date('2003-02-01','yyyy-mm-dd')+60) t_date from dual
    可能有问题,改成
    select (to_date(to_char('2003-02-01','yyyy-mm'),'yyyy-mm')+5) t_date from dual
      

  4.   

    zgh2003(世纪飞扬)的三条语句均有问题。
    1、select (to_date('2003-02-01','yyyy-mm-dd')+60) t_date from dual;
    可执行,但是是加了60天
    SQL> select (to_date('2003-02-01','yyyy-mm-dd')+60) t_date from dual;T_DATE
    ----------
    02-4月 -03
    2、select (to_date(to_char('2003-02-01','yyyy-mm-dd'),'yyyy')+5) t_date from dual;
    无法执行,怎么能对字符串再转化为字符串呢??
    而且就算能用某些方式来+5计算,会得到什么呢?
      1* select (trunc(to_date('2003-02-01','yyyy-mm-dd'),'yyyy')+5) t_date from dual
    SQL> /T_DATE
    ----------
    06-1月 -03
    他不会如你所愿的在年上+5,而是把年变为该年的第一天,再加5运算。
    3、select (to_date(to_char('2003-02-01','yyyy-mm'),'yyyy-mm')+5) t_date from dual
    这个当然也是同样的问题。希望zgh2003(世纪飞扬) 同学能在回答别人问题之前,先测试一下,良好的对待问题的态度,对自己开发项目也有好处,你觉得呢,呵呵?
      

  5.   


    select to_date((to_number(to_char(mydate,'yyyy'))+5)||to_char(mydate,'mmdd'),'yyyymmdd') from dual;
      

  6.   

    另外,可以省去to_number的转换,oracle自动完成的。select to_date((to_char(mydate,'yyyy'))+5||to_char(mydate,'mm')+5||to_char(mydate,'dd'),'yyyymmdd') from dual;SQL> select to_date(to_char(sysdate,'yyyy')+5||
      2  to_char(sysdate,'mm')+5||to_char(sysdate,'dd'),'yyyymmdd') from dual;TO_DATE(T
    ---------
    08-SEP-09SQL>
      

  7.   

    To:snowy_howe(天下有雪)
    多谢,并接受你的批评。
    当时确实没有经过测试,太主观了,
    建议楼主结贴时不要给我的回贴给分,以示对其他老师的尊重,
    多谢!
      

  8.   

    可以考虑以下语句:
    SQL> select add_months(to_date('2003-02-01','yyyy-mm-dd'),60) Test_date
      2  from dual;TEST_DATE
    -----------
    2008-2-1如果是5年零3个月:
    SQL> select add_months(to_date('2003-02-01','yyyy-mm-dd'),63) Test_date
      2  from dual; TEST_DATE
    -----------
    2008-5-1