NUMTODSINTERVAL converts a number to an INTERVAL DAY TO SECOND data type.
返回值:
INTERVAL DAY TO SECOND
语法:
NUMTODSINTERVAL(n, 'interval_unit')
参数:
n 可以是任意数字
interval_unit 指定n表示的是天还是时或分或秒,一般为下面的值:
DAY
HOUR
MINUTE
SECOND
示列:
SQL> select numtodsinterval(23,'hour') from dual;
NUMTODSINTERVAL(23,'HOUR')
---------------------------------------------------------------------------
+000000000 23:00:00.000000000
SQL> select sysdate,sysdate+numtodsinterval(30,'day') from dual;
SYSDATE SYSDATE+NUMTODSINTE
------------------- -------------------
2016-07-19 19:49:19 2016-08-18 19:49:19
NUMTOYMINTERVAL converts a number to an INTERVAL YEAR TO MONTH data type.
返回值:
INTERVAL YEAR TO MONTH
语法:
NUMTOYMINTERVAL(n, 'interval_unit')
参数:
n 可以是任意数据
interval_unit 指定n表示的是年还是月,需要是下面的值:
YEAR
MONTH
示列:
SQL> select sysdate,sysdate+numtoyminterval(10,'month') from dual;
SYSDATE SYSDATE+NUMTOYMINTE
------------------- -------------------
2016-07-19 19:51:46 2017-05-19 19:51:46
SQL> select sysdate,sysdate+numtoyminterval(10,'year') from dual;
SYSDATE SYSDATE+NUMTOYMINTE
------------------- -------------------
2016-07-19 19:52:08 2026-07-19 19:52:08
----计算时间差
INTERVAL YEAR TO MONTH 数据类型
语法:
INTERVAL 'integer [- integer]' {YEAR | MONTH} [(precision)][TO {YEAR | MONTH}]
----该数据类型常用来表示一段时间差, 注意时间差只精确到年和月. precision为年或月的精确域, 有效范围是0到9, 默认值为2.
INTERVAL DAY TO SECOND 数据类型
语法:
INTERVAL '{ integer | integer time_expr | time_expr }'
{ { DAY | HOUR | MINUTE } [ ( leading_precision ) ]
| SECOND [ ( leading_precision [, fractional_seconds_precision ] ) ] }
[ TO { DAY | HOUR | MINUTE | SECOND [ (fractional_seconds_precision) ] } ]
----leading_precision值的范围是0到9, 默认是2. time_expr的格式为:HH[:MI[:SS[.n]]] or MI[:SS[.n]] or SS[.n], n表示微秒.
reference http://blog.sina.com.cn/s/blog_854ec93b0101aahp.html
----11g新特性,可以利用numtoyminterval/numtodsinterval自动创建分区
在创建分区表时,指定分区的列后,需要指定interval(numtoyminterval(1,'month')) ,可以是month、year、day,然后在指定第一个默认的分区,后面的分区会自动创建
示列:
create table p_test
( id int,
update_time date)
partition by range (update_time)
interval(numtoyminterval(1,'month'))
(partition p_test_part1 values less than (to_date('2016-06-01','yyyy-mm-dd')));
reference http://docs.oracle.com/cd/E11882_01/olap.112/e23381/row_functions053.htm#OLAXS446
http://docs.oracle.com/cd/E11882_01/olap.112/e23381/row_functions054.htm#OLAXS447
http://docs.oracle.com/cd/E11882_01/server.112/e41084/sql_elements003.htm#SQLRF51068
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30130773/viewspace-2123183/ ,如需转载,请注明出处,否则将追究法律责任。