现在是 2009-8-5 我想得到 前四个月 也就是 2009-4-5 这个时间
 在sql 语句里面怎么写?! 

解决方案 »

  1.   

    select add_months(to_date('2009-8-5'),-4)
    from dual
      

  2.   

    select sysdate - TO_YMINTERVAL('00-04') from dual
      

  3.   

    SELECT add_months(SYSDATE,-4) FROM dual
      

  4.   

    SQL> select add_months(sysdate,-4) from dual;ADD_MONTHS(SYSDATE,-4)
    ----------------------
    2009-04-05 15:12:55SQ
      

  5.   

    SELECT add_months(to_date('2009-8-5','yyyy-mm-dd'),-4) FROM dual
      

  6.   


    Select add_months(sysdate,-4) from dual
    返回当前数据库时间4个月前的对应时间,
    也可把sysdate变为to_date('2009-08-05 23:25:20','yyyy-mm-dd hh24:mi:ss')特定时间的形式,
    如当前是一月最后一天则返回之前对应月份最后一天的对应时间,如不是最后一天但在4月前没有该日:如6月29日,在4月前的2月可能没有,则返回2月最后1天的对应时间。
      

  7.   

    Select To_Date('2009-08-05', 'yyyy-mm-dd') - Interval '4' Month From Dual;
      

  8.   

    select add_months(to_date('2009-8-5'),-4) 
    from dual
    add_months就可以了啊