Oracle Range分区基于Unix Epoch时间戳

时间:2014-09-30 06:54:26

标签: sql oracle oracle11g

我们是否可以对具有唯一列的表进行范围分区,作为Unix Epoch format中oracle中存储的时间戳。

我们有很多选项可以使用oracle分区,但我想知道如何对存储在数据库级别的Unix Epoch时间戳的表进行分区。

由于此列在前端引用,我们只想在此列上进行范围分区。

这就是表结构的样子。

Timestamp      number 
Reference id   number
Value          integer

该表将存储一年的关键数据,timestamp列存储确切的unix纪元时间戳。我们有兴趣根据每个月的时间戳值将表分成12个分区。

这是我们使用下面的sql转换为日期格式的unix时间戳的方式。

select (TO_DATE('1970-01-01','YYYY-MM-DD') + unix_timestamp / 86400000) from dbname;

1 个答案:

答案 0 :(得分:0)

我相信Oracle会在内部以相同的方式存储时间值 - 自午夜以来的秒数(秒的小数部分)。精度高达纳秒 - 时间戳(9)。无论如何,内部存储方式无关紧要。我建议使用标准的TIMESTAMP数据类型。是的,可以在TIMESTAMP列上构建分区