我有一个表员工,我需要根据时间戳的分区进行分区。我尝试了一些类型但没有工作。
CREATE TABLE employees (
id INT NOT NULL,
fname VARCHAR(30),
lname VARCHAR(30),
hired DATE NOT NULL DEFAULT '1970-01-01',
separated TIMESTAMP NOT NULL DEFAULT '9999-12-31',
job_code INT,
store_id INT
)
PARTITION BY RANGE ( date_format(separated,'%m') ) (
PARTITION p0 VALUES LESS THAN (01),
PARTITION p1 VALUES LESS THAN (02),
PARTITION p2 VALUES LESS THAN (03),
----
PARTITION p4 VALUES LESS THAN (04)
);
创建此表时,显示不允许此分区功能 如果使用 MONTH(分隔),则适用于DATE类型,但会返回分隔的无效默认值
答案 0 :(得分:1)
我们如何在我们的项目中做到(可能不是正确的方式,但对我们有用) - (MySQL 5.1.60)
PARTITION p201值小于(TO_DAYS('2012-01-01')),
分区p202的价值低于(TO_DAYS('2012-02-01')),
分区p203价值低于(TO_DAYS('2012-03-01')),
分区p204价值低于(至差时间('2012-04-01')),
分区p205的价值低于(TO_DAYS('2012-05-01')),
分区p206价值低于(至少(2012-06-01))), 分区p207的价值低于(至差时间('2012-07-01')),
分区p208价值低于(至差时间('2012-08-01')),
分区p209价值低于(至差时间('2012-09-01')),
分区p210价值低于(至差时间('2012-10-01')),
分区p211的价值低于(TO_DAYS('2012-11-01')),
分区p212价值低于(至差时间('2012-12-01'))
这是2012年全年的分区