我想让用户指定一个日期,该日期可能包括也可能不包括日期和月份(但至少会有一年.)问题在于它是作为日期时间存储在数据库中的; 缺失的日期/月将保存为默认值,我将丢失原始格式和日期的含义.
我的想法是除了datetime列之外还将实际格式作为字符串存储在列中.然后,每当我必须显示日期和日期时间时,我就可以使用字符串列.缺点是我要显示的表中每个日期列的额外列,打印本地化日期不会那么容易,因为我不能依赖日期时间值......我可能要解析字符串.
我希望我忽略了一些东西,可能会有一种更简单的方法.
(注意我使用Rails,如果它对解决方案很重要.)
正如Jhenzie所提出的,创建一个位掩码来显示已指定日期的哪些部分.1 =年,2 =月,4 =日,8 =小时(如果您决定更具体),然后将其存储到另一个字段中.
我可以想到这样做而不需要在表中添加额外列的唯一方法是使用jhenzie使用位掩码的方法,然后将该位掩码存储到datetime列的秒部分.