如何存储没有年份部分的生日?

2024-05-18

类似问题:Postgres 生日选择 https://stackoverflow.com/questions/6913719/postgres-birthdays-selection

我们正在设计一项新功能:我们将存储人们生日的月份和日期部分,但不存储年份。因此圣诞节出生的用户的生日将是“12/25”。问题是,我们如何在 postgres 中最好地表示这一点?

  1. The date列需要一年,并且还拒绝非闰年中的闰日。我们可以存储具有任意闰年的所有生日,例如'1972-12-25',但这有点麻烦。
  2. 我们可以用两个int列,一列代表月份,一列代表一年,但是我们会完全失去 pg 的内置日期检查功能,并且您可以存储日期'02-31'.
  3. 我们可以使用一个text列,但对此进行查询并不漂亮。

我们还缺少什么选择吗?我们目前倾向于一对整数列。

Edit:

为什么不只存储出生日期(必须是有效日期),并且 从那里去?

隐私——这是一项可选功能,我们不想要求提供超出需要的个人信息。


只需存储具有任意闰年的日期,并根据 SELECT 中的需要对其进行格式化。
我有很多案例都是这样做的。它比所有其他想法要容易得多。

问题编辑后更新

如果出生年份是optional那么约会还有一个额外的好处,那就是你can如果有年份,则存储年份 - 与日期列所需的相同 4 个字节中。使用任意闰年,否则对于没有年份的日期是不可能的。比如 2400 或 1804。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何存储没有年份部分的生日? 的相关文章

  • MySQL 查询中的窗口函数

    有没有办法在 SELECT 查询本身中动态地使用 MySQL 查询中的窗口函数 我知道在 PostgreSQL 中这是可能的 例如 下面是 PostgreSQL 中的等效查询 SELECT c server ip c client ip s
  • PostgreSQL & regexp_split_to_array + 取消嵌套

    我有这样的绳子 测试1 纽约 X 测试 2 芝加哥 Y 测试 3 宾夕法尼亚州哈里斯堡 Z 我需要的结果是 Column1 Column 2 Column3 Test 1 new york X Test 2 chicago Y Test 3
  • 如何将本机数据库运算符 (postgres ~) 与 JPA 标准生成器一起使用?

    我使用 JPA 2 0 标准构建以下查询 简化 select n from notif n where n message b la 我正在使用 postgresql 数据库 我真的需要 运算符 而不是像 我可以使用与 CriteriaBu
  • 使用 Rails 中的 postgres json 字段更新嵌套键

    我一直在尝试更新以下内容 boxes book 2 moving 2 goods to boxes book new 2 moving 2 goods 无需使用正则表达式或在 ruby 中执行此操作 但似乎有点棘手 我想添加新密钥 然后删除
  • java Web应用程序中的日期转换

    String date1 13 03 2014 16 56 46 AEDT SimpleDateFormat sdf new SimpleDateFormat dd MM yyyy HH mm ss z sdf setTimeZone Ti
  • 将 CSV 复制到 Amazon RDS 托管的 Postgresql 数据库

    我有一个使用 Amazon 的 RDS 服务托管的数据库 我正在尝试编写一个 Web 服务来更新所述数据库 我遇到的问题是它不允许我使用 COPY 命令 因为我收到此错误 错误 必须是超级用户才能复制到文件或从文件复制 我正在使用我为数据库
  • PostgreSQL 如何对字段上的 b 树索引执行 ORDER BY?

    我有一张桌子bsort CREATE TABLE bsort a int data text Here data可能不完整 换句话说 某些元组可能没有data value 然后我在表上建立一个 B 树索引 CREATE INDEX ON b
  • PostgreSQL安装错误——无法分配内存

    我正在尝试从 sqlite3 切换到 PostgreSQL 以在 Rails 中进行开发 这样我就不会遇到任何 heroku 问题 我遵循了heroku和链接到的Railscast上给出的建议 但是在brew安装postgresql后遇到了
  • PHP strtotime +1 个月添加额外一个月[重复]

    这个问题在这里已经有答案了 我有一个简单的变量 可以将今天添加一个月 endOfCycle date Y m strtotime 1 month 今天是 2013 年 1 月 所以我希望返回 2013 02 但我得到的是 2013 03 我
  • 向 cassandra 表添加列会立即完成吗?

    我们计划在现有的 cassandra 表中添加一列 list 类型的列 该表的数据文件大小约为 350 GB 在应用架构更改时 我们可以暂时停止所有读 写几分钟 我们的理解是 cassandra 在应用架构更改时不会锁定表 但要确保我们的
  • 在java中迭代日期

    我需要遍历一系列日期 不确定如何在 for 循环中获取第二天 我在用java util Date So plusDays 1 不能在 for 循环中用于获取下一个日期 Used date1 new Date date1 getTime 10
  • 获取给定字符串日期中该月的最后一天

    我的输入字符串日期如下 String date 1 13 2012 我得到的月份如下 SimpleDateFormat dateFormat new SimpleDateFormat MM dd yyyy Date convertedDat
  • 使用 strtotime() 计算时间差(以小时和分钟为单位)[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions time1
  • 如何将自定义类型数组传递给 Postgres 函数

    我有一个自定义类型 CREATE TYPE mytype as id uuid amount numeric 13 4 我想将它传递给具有以下签名的函数 CREATE FUNCTION myschema myfunction id uuid
  • POSTGRESQL:如何在现有表上添加包含数据的新列

    我是 postgres 和 sql 脚本的新手 所以请耐心等待 我想要做的是在现有表上添加包含数据的现有列 现有表的示例 NAME AGE Adam 25 Tim 30 现在我想添加一个新列 ADDRESS 其中包含 Adam 和 Tim
  • 多租户 Rails 应用:不同技术的优缺点是什么?

    我最初是为一位客户编写 Ruby on Rails 应用程序的 现在 我正在更改它 以便它可以用于不同的客户 我的最终目标是某些用户 不是我 可以单击按钮并创建一个新项目 然后生成所有必要的更改 新架构 新表 代码处理 无需任何人需要我编辑
  • 如何创建postgres数据库模式的sql脚本?

    我想要 postgres 9 数据库模式的 sql 脚本 该脚本不在本地服务器上 我在 pgAdmin 的 sql 编辑器上尝试了 pg dump 命令 但它在那里不起作用 我不确定在哪里运行该命令 请帮助我做同样的事情 谢谢 pg dum
  • Rails - 格式日期字段

    如何设置 date field 的日期格式样式 我得到了以下表格 这是为日期字段呈现以下 HTML
  • 根据 PostgreSQL 中的列将文本附加到列数据

    我想将一些文本附加到表格每一列的每个单元格中 作为该特定列的符号 例如 假设我的表如下 所有字段的类型字符不同 name age location james 45 france simon 33 usa ben 76 china 我想将其
  • “语言‘plpgsql’VOLATILE”是什么意思?

    当我在 Postgres 数据库中创建或更新函数或过程时 我看到LANGUAGE plpgsql VOLATILE在函数结束时 这意味着什么以及其目的是什么 From Postgres 文档 http www postgresql org

随机推荐