oracle中的区间函数



查询:

SELECT INTERVAL '300' month,
       INTERVAL '54-2' year to month,
       INTERVAL ' 11:12:10.1234567' hour to second 
  FROM DUAL;

上述查询的输出为:

+25-00,+54-02,+00 11:12:10.1234567

有人能向我解释一下这个查询是如何给出这个输出的,并解释一下区间函数吗?

INTERVAL不是一个函数,它是一个引入区间文字的关键字,表示数据类型。类似于文字DATE '2011-05-04'TIMESTAMP '2011-05-04 17:18:19'正在执行的操作。

有关间隔文字的详细信息
http://docs.oracle.com/cd/E11882_01/server.112/e41084/sql_elements003.htm#SQLRF00221
http://docs.oracle.com/cd/E11882_01/server.112/e41084/expressions009.htm#SQLRF52084

有关interval数据类型的详细信息:
http://docs.oracle.com/cd/E11882_01/server.112/e41084/sql_elements001.htm#i128552

Interval是一个函数,用于在给定日期上减去或添加(天、年、月、小时、分钟和秒(。间隔"300"月:25-0原因:300/12(月(给你的商是25,余数是0,所以输出将是25-0

时间间隔"54-2"年到月:54-2原因:因为你没有提到它给出的任何日期。如果您使用从dual中选择sysdate+interval‘54-2’年到月;输出将为:1-12-2066

日期:2012年10月1日所以把54加到12=66并在10月增加2个月,即12月

与最后一个选项相同。

最新更新