ruby-on-rails - 存储日期和可选的月/日

标签 ruby-on-rails ruby database postgresql database-design

我想将日期存储在我的 Postgres 数据库中。
唯一的问题是这个日期可以有可选的天甚至月。

例子:
用户提供他受雇的时间段 - 不需要完整日期(日 + 月 + 年),但只需开始年份和结束年份。
但是有些用户,他们只在同年的5月到10月工作,所以也必须提供月份。

如何处理这种可选的日期部分?

最佳答案

无论如何都要使用正确的date 类型。 不要存储文本或多列。那会更昂贵且更不可靠。

使用函数 to_date() ,开箱即可满足您的要求。例如,如果您使用模式 'YYYYMMDD' 调用它并且实际字符串缺少日、月和日的字符,则它默认为年/月的第一个月/第一天:

db=# SELECT to_date('2001', 'YYYYMMDD');
  to_date
------------
 2001-01-01

db=# SELECT to_date('200103', 'YYYYMMDD');
  to_date
------------
 2001-03-01

如果需要,您可以另外存储一个指示年/月/日的精度标志。

关于ruby-on-rails - 存储日期和可选的月/日,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22456939/

相关文章:

ruby - 有没有最新的 Ruby Gems 提供 gem 模板?

ruby 菜鸟?创建 ruby 日期

java - 如何在 Blackberry 项目中存储 32 MB 文件

iphone - 在插入 iPhone 的 SQLite 数据库之前检查数据是否存在

ruby-on-rails - ruby on rails has_one与唯一的关联

ruby-on-rails - Rails 为 coinbase 设置 oauth2

ruby-on-rails - 使用某种机制来修剪方法的返回值

php - 如何使用 SQL 创建一个空表?

ruby-on-rails - RAILS 我应该使用什么样的关系?

ruby-on-rails - Rails 3.2 严格的质量分配默认值