Fra*_*mer 8 postgresql schema date date-of-birth
类似的问题:Postgres生日选择
我们正在设计一个新功能:我们将存储人们生日的月和日部分,而不是年份.因此,在圣诞节出生的用户将拥有生日"12/25".问题是,我们怎样才能在postgres中最好地代表这一点?
date专栏需要一年的时间,并且还会拒绝非发展日的平日.我们可以用任意闰年存储所有生日,例如'1972-12-25',但这有点像kludge.int列,一个用于月份,一个用于一年,但我们完全丢失了pg的内置日期检查,您可以存储日期'02-31'.text列,但查询不会很好.我们有什么选择吗?我们目前正倾向于一对整数列.
编辑:
为什么不存储出生日期 - 必须是有效的日期 - 并从那里开始?
隐私 - 这是一项可选功能,我们不希望要求提供超出需要的个人信息.
只需使用任意的leapyear存储日期,并在SELECTs中根据需要对其进行格式化.
我有很多案例我都是这样做的.这比其他所有想法都容易得多.
如果出生年份是可选的,则日期具有额外的优势,即如果您拥有年份,则可以存储年份 - 日期列需要相同的4个字节.使用任意的leapyear,否则对于没有一年的日期是不可能的.像2400或1804.