日期类型的字段datetime如何分区

日期类型的字段datetime如何分区?我想每一年的数据自动创建一个分区。
加入分区字段是 create_time,datetime类型。

支持使用时间分区的,OcenBase支持的分区类型在文档中有:OceanBase分区类型

对于采用时间分区,可以使用 Range 分区,具体的分区执行语句在官网也有:分区规则相关文档

创建分区相关文档:创建分区相关文档

试了很多办法,都失败了

稍等,我在我自己的环境测试一个sql 语句命令给您

1678269956748_6922B3F5-B7D3-481b-B90F-533C2DD846BA

两个例子的提示报错都很明显的

上面是mysql的对比行为

可以参考一下
CREATE TABLE points_log (
id mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
nick char(25) NOT NULL,
amount decimal(7,4) NOT NULL,
stream_online tinyint(1) NOT NULL,
modification_type tinyint(3) unsigned NOT NULL,
dt datetime NOT NULL,
PRIMARY KEY (id,dt,nick),
KEY nick_idx (nick),
KEY amount_idx (amount),
KEY modification_type_idx (modification_type),
KEY dt_idx (dt),
KEY stream_online_idx (stream_online)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb4
PARTITION BY RANGE( YEAR(dt) )
SUBPARTITION BY HASH( MONTH(dt) )
SUBPARTITIONS 12 (
PARTITION p0 VALUES LESS THAN (2014),
PARTITION p1 VALUES LESS THAN (2015),
PARTITION p2 VALUES LESS THAN (2016),
PARTITION p3 VALUES LESS THAN (2017),
PARTITION p4 VALUES LESS THAN (2018),
PARTITION p5 VALUES LESS THAN (2019),
PARTITION p6 VALUES LESS THAN (2020),
PARTITION p7 VALUES LESS THAN MAXVALUE
);

如果是 varchar类型的存放时间数据的字段做分区的话,可以用这个语法哈

举个:chestnut:
create table test5(
empno varchar(20)
) partition by range columns(empno) (
PARTITION p0 VALUES LESS THAN (‘2020-00-00 00:00:00’),
PARTITION p1 VALUES LESS THAN (‘2021-00-00 00:00:00’),
PARTITION p2 VALUES LESS THAN (MAXVALUE)
);

datetime 类型的数据通过年份来做range分区也没有问题的

image
谢谢,我这么搞也行