你可以这样做,例如:
CREATE TABLE my_table (
ID NUMBER NOT NULL PRIMARY KEY,
--... other columns ...
t TIMESTAMP(0),
PARTITION_KEY TIMESTAMP(0) GENERATED ALWAYS AS (COALESCE(t, TIMESTAMP '2999-01-01 00:00:00')) VIRTUAL
)
PARTITION BY RANGE (PARTITION_KEY) INTERVAL( NUMTODSINTERVAL(7, 'DAY')) (
PARTITION PRE2018 VALUES LESS THAN (TIMESTAMP '2018-01-01 00:00:00')
);
它应该是简单的,像
PARTITION FOR (TIMESTAMP '2999-01-01 00:00:00')
也许你也可以使用
GENERATED ALWAYS AS (COALESCE(t, TIMESTAMP '1900-01-01 00:00:00'))
取决于什么更符合你的逻辑。