ruby-on-rails - 我将如何存储可能是部分的日期(即只有年份,也可能是月份)并稍后以相同的规范输出它?

标签 ruby-on-rails database-design datetime

我想让用户指定一个日期,该日期可能包括也可能不包括日和月(但至少会有年)。问题是它何时作为日期时间存储在数据库中;缺少的日/月将保存为默认值,我将丢失日期的原始格式和含义。

我的想法是除了日期时间列之外,将实际格式作为字符串存储在列中。然后,每当我必须显示其他所有内容的日期和日期时间时,我都可以使用字符串列。缺点是我要显示的表中的每个日期列都有一个额外的列,并且打印本地化日期不会那么容易,因为我不能依赖日期时间值......我可能不得不解析字符串.

我希望我忽略了一些东西,并且可能有更简单的方法。

(请注意,如果对解决方案很重要,我正在使用 Rails。)

最佳答案

As proposed by Jhenzie , 创建位掩码以显示已指定日期的哪些部分。 1 = 年,2 = 月,4 = 日,8 = 小时(如果您决定更具体),然后将其存储到另一个字段中。

在不需要表中额外列的情况下,我能想到的唯一方法是使用 jhenzie 的使用位掩码的方法,然后将该位掩码存储到日期时间列的秒部分中。

关于ruby-on-rails - 我将如何存储可能是部分的日期(即只有年份,也可能是月份)并稍后以相同的规范输出它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/90246/

相关文章:

ruby-on-rails - 为 RSpec 生成缺失的规范文件

java - 使用 Jackson(Joda-Time 模块)进行 DateTime 反序列化的默认时区

Javascript日期格式化为具有特定格式的本地时区

postgresql - 如何在 Postgres 9.3 中获取当前时区名称?

javascript - 简单的 javascript 在 Shopify 中不起作用

ruby-on-rails - 有条件的 root_url(索引)

ruby-on-rails - 工厂女孩特质

php - 全站多对象搜索 - 数据库设计/代码策略?

mysql - 数据库设计留出时间

mysql - 在 MySQL 中删除带有外键的列