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

dan*_*car 6 database postgresql

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

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

Erw*_*ter 8

我会选择@Michael提出的建议.

从a中提取月份和年份date是超快的,EXTRACT或者to_char(),可能不需要预处理.

A date只占用磁盘上的4个字节,几乎没有比这更好.

可能的替代方案可能是2 integer列,列有限制,以防止非法日期.占用2 x 4字节.

甚至2 smallint来节省RAM和磁盘存储空间.阅读并理解存储中的数据对齐.在许多情况下,您不会保存smallint列.看到:

最好用date专栏.


Mic*_*ker 6

大概最明智的做法是使用date_trunc()到月。如果需要,您还可以添加检查约束以date_trunc()等于该值。