如何在数据库中存储年份?

时间:2011-11-17 15:10:19

标签: database postgresql

是否有标准方法在数据库中存储年份和月份?我需要根据几个月和几年做一些报告。

我不能使用日期和函数来实时提取几个月,因为表格很大,所以我需要预处理。

2 个答案:

答案 0 :(得分:8)

我会选择what @Michael proposes

使用EXTRACTto_char()date提取月份和年份非常快,可能不需要进行预处理。

磁盘上的date only occupies 4 bytes,几乎没有比这更好。

可能的替代方案可能是2 integer列,其中包含列限制以防止非法日期。占用2 x 4字节。

甚至2 smallint来节省RAM和磁盘存储空间。阅读并了解存储中的数据对齐。在许多情况下,您只使用smallint列保存任何内容。参见:

最好使用date列。

答案 1 :(得分:4)

可能最明智的是使用date_trunc()到月份。如果需要,您还可以为date_trunc()添加一个等于该值的检查约束。