在数据库中存储年份

时间:2012-12-08 18:27:48

标签: database postgresql database-design postgresql-9.1

年度数据的最佳PostgreSQL数据类型是什么,例如2006或1847。 TEXTSMALLINTDATE?理想情况下,我希望能够使用第二年 - 月 - 日列(DATE格式)查询该列。

1 个答案:

答案 0 :(得分:22)

一年是一个整数,甚至以有意义的方式支持整数运算,因此text毫无意义。你没有一个月或一天所以date正好在窗外。 fine manual可以说明smallint

  

smallint类型通常仅在磁盘空间非常宝贵的情况下使用。

留下integer作为自然选择。如果您计划将此值与datetimestamps合并,则interval可能有意义,因为date and time functions and operatorsinterval有很好的理解

所以这取决于你计划用这个“年”做什么以及它到底是什么。听起来像一个简单的integer是合适的,但你可能不得不将它与你的“第二年 - 月 - 日列”(大概是date列)结合起来,这取决于他们需要的方式一起工作。