我正在玩mysql 5.6。我对这种可能性特别感兴趣:DATETIME 或 TIMESTAMP 值可以包括一个尾随小数秒部分,精度高达微秒(6 位)。
我想要的是使用这样的时间戳对表进行分区。
例子:
CREATE TABLE `VALUE_BIS` (
`TSTAMP` timestamp(3) NOT NULL,
`ATTRIBUTE_ID` int(11) NOT NULL,
`VAL` int(11) unsigned NOT NULL,
PRIMARY KEY (`ATTRIBUTE_ID`,`TSTAMP`)
) PARTITION BY RANGE (UNIX_TIMESTAMP(TSTAMP))
(PARTITION p_s18 VALUES LESS THAN (UNIX_TIMESTAMP('2012-09-18 00:00:00')),
PARTITION p_s19 VALUES LESS THAN (UNIX_TIMESTAMP('2012-09-19 00:00:00')),
PARTITION p_Max VALUES LESS THAN (UNIX_TIMESTAMP('2020-09-26 00:00:00' )));
==>ERROR 1491 (HY000): PARTITION 函数返回错误的类型
*我认为这是正常的,因为它返回 unixtimestamp_seconds.microseconds 这不是整数*
如果添加毫秒
PARTITION p_s18 VALUES LESS THAN (UNIX_TIMESTAMP('2012-09-18 00:00:00.000')
==> 错误 1697 (HY000): 分区 'p_s18' 的 VALUES 值必须具有 INT 类型
OK 和以前一样的故事
如果我更改我的 tstamp 列的定义并且不使用毫秒
`TSTAMP` timestamp
==> 它工作得很好,但我不会存储我的毫秒数,这不是我想要的。
任何的想法?