oracle按时间戳创建分区

本文详细介绍在Oracle数据库中如何按timestamp类型进行分区,包括创建固定分区和按年、月、日、时、分、秒动态分区的方法。通过具体实例展示如何使用numtodsinterval和numtoyminterval函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

​一般一张表超过2G的大小,ORACLE是推荐使用分区表的。pv表、接口调用记录表通常增长较快,且通常包含创建时间字段。创建时间多用date类型或者timestamp时间戳类型。关于按date类型分区,网上资料一搜一大把,这里就不详细介绍了。但是,关于按timestamp类型分区,网上资料就很少啦。其实也很简单,跟date类型很类似,估计是网上各位大佬懒得说才难以找到。这里我做简要记录,以便日后参考。

**

1、按时间戳创建固定分区

**

CREATE TABLE TEST_CARD (
ID NUMBER (19) NOT NULL,
CREATEDATE TIMESTAMP (6)
) PARTITION BY RANGE (CREATEDATE)(
PARTITION P2020028213030
VALUES
LESS THAN (
TIMESTAMP '2020-02-28 21:30:00'
),
PARTITION P2020028213300
VALUES
LESS THAN (
TIMESTAMP '2020-02-28 21:33:00'
),
PARTITION PMAX
VALUES
LESS THAN (MAXVALUE)
);

**

2、按时间戳创建分区(按年、月、日、时、分、秒)

**

numtodsinterval(x,c),x是一个数字,c是一个字符串,
表明x的单位,这个函数把x转为interval day to second数据类型
常用的单位有 (‘day’,‘hour’,‘minute’,‘second’)
numtoyminterval与numtodsinterval函数类似,将x转为interval year to month数据类型
常用的单位有’year’,‘month’

CREATE TABLE TEST_CARD2 (
ID NUMBER (20) NOT NULL,
CREATEDATE TIMESTAMP (6)
) PARTITION BY RANGE (CREATEDATE)
INTERVAL (numtoyminterval(1, 'month'))
(
PARTITION P2020028213030
VALUES
LESS THAN (
to_TIMESTAMP('2020-02-28 21:30:30','yyyy-mm-dd hh24:mi:ss')
)
);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值