查询:
SELECT INTERVAL '300' month,
INTERVAL '54-2' year to month,
INTERVAL ' 11:12:10.1234567' hour to second
FROM DUAL;
Run Code Online (Sandbox Code Playgroud)
上述查询的输出是:
+25-00,+54-02,+00 11:12:10.1234567
Run Code Online (Sandbox Code Playgroud)
有人可以向我解释一下这个查询是如何给出这个输出的,有关间隔函数的解释吗?
a_h*_*ame 11
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
间隔是一种功能,用于扣除或添加(天,年,月,小时,分钟和秒)给定日期.间隔'300'月:25-0原因:300/12(月)给你的商为25,余数为0,所以输出为25-0
间隔'54 -2'每年:54-2原因:因为你没有提到任何日期,因为它是.如果你使用select sysdate + interval '54 -2'来自dual的月份; 输出将是:1-12-2066
sydate:1-10-2012所以加上54到12 = 66并且加上2个月到oct将是dec.
与最后一个选项相同.
归档时间: |
|
查看次数: |
62597 次 |
最近记录: |