关注!
但可以通过下面的SQL得到同样的结果:
select add_months(sysdate,100*12+7) from dual;SQL> select add_months(sysdate,100*12+7) from dual;ADD_MONTHS(SYSDATE,100*12+7)
----------------------------
2106-10-27 10:25:44SQL> select sysdate+interval '100-7'year(3) to month from Dual;SYSDATE+INTERVAL'100-7'YEAR(3)
------------------------------
2106-10-27 10:25:50SQL>

解决方案 »

  1.   

    SQL> CREATE TABLE time_table (
      2  start_time TIMESTAMP,
      3  duration_1 INTERVAL DAY (6) TO SECOND,
      4  duration_2 INTERVAL YEAR TO MONTH);Table createdSQL> insert into time_table (duration_2) select interval '5' year - interval '10' month from dual;1 row insertedSQL> select to_char(duration_2) from time_table;TO_CHAR(DURATION_2)
    -------------------
    +04-02说明: interval '5' year 表示 5年的时间间隔 ; interval '10' month 表示 10个月的时间间隔, 两者相减, 应该表示 4年2个月的时间间隔, 存入duration_2, 查询出来的 +04-02表示的就是 interval '04-02' year to month, 4年2个月 ;  +. - 号表正负,和小时候学的一样.SQL> insert into time_table(duration_1) select interval '5' day - interval '10:10' hour to minute from dual;1 row insertedSQL> select to_char(duration_1) from time_table;TO_CHAR(DURATION_1)
    ------------------------
    +000004 13:50:00.000000说明: 同上类推. 多说明一点,(6)表示精度, 你看4前面那5个0就明白;SQL>  insert into time_table (start_time) select to_timestamp('2004-10-13 11:11:11', 'YYYY-MM-DD HH:MI:SS') from dual;1 row insertedSQL> select to_char(start_time) from time_table;TO_CHAR(START_TIME)
    ----------------------------------------
    13-10月-04 11.11.11.000000 上午说明: 比我们平时常用的  2004年10月13号 内容更丰富点, 更精确点.
    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    刚才在网上copy过来的,希望对楼主有点帮助!
      

  2.   

    能把INTERVAL 函数说的具体些吗
    谢谢楼上了!!!
    把你查资料的网站告诉我吗?
    谢谢了
      

  3.   

    其实我找资料的方法很简单,
    以你不清楚的内容为关键词,在baidu、google中搜,
    会有很多你想要的东西的!
      

  4.   

    oracle 从8i开始就引入了时间间隔(interval)相关的函数;
    下面的2种方法结果是一样的:
    SQL> select sysdate + interval '2' hour from dual;SYSDATE+INTERVAL'2'HOUR
    -----------------------
    2005-8-2 17:29:13SQL> select sysdate + numtodsinterval(2,'hour') from dual;SYSDATE+NUMTODSINTERVAL(2,'HOU
    ------------------------------
    2005-8-2 17:30:38这里NUMTODSINTERVAL ( n , 'char_expr' )
    第一个参数是数字,第2个参数是从日期的英文拼写,从'day'到'second'.
    年月间隔用NUMTOYMINTERVAL()9i以后还引入了TO_DSINTERVAL ( char ['nlsparam'] )
    参数是从日到秒的字符串:'1 2:20:30' 表示1天2小时20分30秒的时间间隔
    TO_YMINTERVAL ( char ) 表示年月的间隔另外还引入了interval day to second 和  year to month 的数据类型
    interval_value_expr { DAY TO SECOND | YEAR TO MONTH }SQL> select sysdate - to_dsinterval('1 1:05:20') from dual;SYSDATE-TO_DSINTERVAL('11:05:2
    ------------------------------
    2005-8-1 14:33:48SQL> select sysdate - interval '1 1:05:20' day to second from dual;--相隔1天1小时5分20秒SYSDATE-INTERVAL'11:05:20'DAYT
    ------------------------------
    2005-8-1 14:34:18SQL> select sysdate - to_yminterval('2-2') from dual;--相隔2年2个月SYSDATE-TO_YMINTERVAL('2-2')
    ----------------------------
    2003-6-2 15:41:39
      

  5.   

    到oracle官方网站下载9i文档,里面资料是最全的了,想要的东西基本都在上面能找到,关键看你怎么吸收了
      

  6.   

    谢谢大家了,我的是公司内网上不了baidu ,google 等网站,能告诉我一些学习网站吗.
      

  7.   

    能告诉我一些学习网站吗
    谢谢了
    up up up!!!