是否有标准方法在数据库中存储年份和月份?我需要根据几个月和几年做一些报告。
我不能使用日期和函数来实时提取几个月,因为表格很大,所以我需要预处理。
答案 0 :(得分:8)
使用EXTRACT
或to_char()
从date
提取月份和年份非常快,可能不需要进行预处理。
磁盘上的date
only occupies 4 bytes,几乎没有比这更好。
可能的替代方案可能是2 integer
列,其中包含列限制以防止非法日期。占用2 x 4字节。
甚至2 smallint
来节省RAM和磁盘存储空间。阅读并了解存储中的数据对齐。在许多情况下,您只使用smallint
列保存任何内容。参见:
最好使用date
列。
答案 1 :(得分:4)
可能最明智的是使用date_trunc()
到月份。如果需要,您还可以为date_trunc()
添加一个等于该值的检查约束。