有人可以解释一下 NUMTOYMINTERVAL 的逻辑吗?我浏览了各种网站,但无法获取。
能否请您解释一下下面的具体示例
select (NUMTOYMINTERVAL(30,'month')) from dual;
select (NUMTOYMINTERVAL(30,'YEAR')) from dual;
PARTITION BY RANGE (RECORDDATE) INTERVAL (NUMTOYMINTERVAL(1,'MONTH'))
提前致谢
最佳答案
这个网站给出了很好的解释:
http://www.orafaq.com/wiki/Interval
INTERVAL datatype is a data type used to store a period of time. There are 2 kinds of interval: INTERVAL YEAR TO MONTH, to store a difference in years and months, and INTERVAL DAY TO SECOND, to store a difference in days, hours, minutes and seconds.
它提供了一种指示时间LENGTH
的方法..可以是YEAR/MONTH
(NUMTOYMINTERVAL
)或天/小时/分钟/秒:(TO_DSINTERVAL
)
所以在你的第一个例子中:
SQL > select (NUMTOYMINTERVAL(30,'month')) from dual;
-------------- More --------------
(NUMTOYMINTERVAL(30,'MONTH'))
---------------------------------------------------------------------------
+000000002-06
1 row selected.
它返回一个 INTERVAL
表示“30 个月”的时间长度..结果显示“2 年零 6 个月”..
顺便说一句,Tom Kyte 的这篇文章很有趣,他建议避免使用 NUMTOYMINTERVAL
由于接近月末的行为
https://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:68920891856765
I do not recommend using the NUMTOYMINTERVAL function. The reason has to do with how the functions behave at the months end.
关于oracle11g - Oracle NUMTOYMINTERVAL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37543795/