类似问题:Postgres 生日选择 https://stackoverflow.com/questions/6913719/postgres-birthdays-selection
我们正在设计一项新功能:我们将存储人们生日的月份和日期部分,但不存储年份。因此圣诞节出生的用户的生日将是“12/25”。问题是,我们如何在 postgres 中最好地表示这一点?
- The
date
列需要一年,并且还拒绝非闰年中的闰日。我们可以存储具有任意闰年的所有生日,例如'1972-12-25'
,但这有点麻烦。
- 我们可以用两个
int
列,一列代表月份,一列代表一年,但是我们会完全失去 pg 的内置日期检查功能,并且您可以存储日期'02-31'
.
- 我们可以使用一个
text
列,但对此进行查询并不漂亮。
我们还缺少什么选择吗?我们目前倾向于一对整数列。
Edit:
为什么不只存储出生日期(必须是有效日期),并且
从那里去?
隐私——这是一项可选功能,我们不想要求提供超出需要的个人信息。
只需存储具有任意闰年的日期,并根据 SELECT 中的需要对其进行格式化。
我有很多案例都是这样做的。它比所有其他想法要容易得多。
问题编辑后更新
如果出生年份是optional那么约会还有一个额外的好处,那就是你can如果有年份,则存储年份 - 与日期列所需的相同 4 个字节中。使用任意闰年,否则对于没有年份的日期是不可能的。比如 2400 或 1804。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)