首页 / 知识
关于 ruby?? on rails:我将如何存储可能是部分的日期(即只有年份,也可能是月份)并在以后以相同的特异性输出它?
2023-04-17 00:15:00

How would I store a date that can be partial (i.e. just the year, maybe the month too) and output it later with the same specifity?我想让用户指定一个日期,该日期可能包括也可能不包括日期和月份(但至少有年份)。问题是当它作为日期时间存储在数据库中时;缺少的日期/月份将保存为默认值,我将失去日期的原始格式和含义。 我的想法是除了 datetime 列之外,将列中的实际格式存储为字符串。然后,每当我必须为其他所有内容显示日期和日期时间时,我都可以使用字符串列。缺点是我要显示的表格中的每个日期列都有一个额外的列,并且打印本地化日期不会那么容易,因为我不能依赖日期时间值......我可能不得不解析字符串。 我希望我忽略了一些事情,并且可能有更简单的方法。 (请注意,如果它对解决方案很重要,我会使用 Rails。) 按照 Jhenzie 的建议,创建一个位掩码来显示日期的哪些部分已被指定。 1 = 年,2 = 月,4 = 日,8 = 小时(如果您决定更具体),然后将其存储到另一个字段中。 我能想到的唯一方法是使用 jhenzie 的使用位掩码的方法,然后将该位掩码存储到日期时间列的秒部分中。 在你的模型中只关注你关心的部分。因此,您可以将整个日期存储在您的数据库中,但您可以在将其显示给用户之前将其合并。 n 附加列可以简单地用于指定日期时间的哪一部分已被指定 1 = 天 所以 3 是日和月,6 是月和年,7 是三者。那时它是一个简单的 int n n n informix 数据库有这个功能。当您定义日期字段时,您还指定了所需时间的掩码 我对数据库设计知之甚少,但我认为一种简洁的方法是使用布尔列来指示用户是否输入了月份和日期(每个一列)。然后,要保存给定的日期,您将: 这样您就知道可以信任日期时间的哪些部分(即用户输入的内容)。 编辑:这也比拥有一个带有神秘值的 我可能会存储日期时间和一个额外的"精度"列来确定如何输出它。对于输出,精度列可以映射到包含相应格式字符串("YYYY-mm"等)的列,也可以包含格式字符串本身。 真的有必要将它存储为日期时间吗?如果未将其存储为字符串 2008 或 2008-8 或 2008-8-1 - 在将其拉出时将字符串拆分为连字符,您就可以确定原始输入的具体程度 |
最新内容
相关内容
linux命令删除用户组?
linux命令删除用户组?,管理,密码,系统,用户组,用户,概念,命令,文件,管理员,工作组,Linux命令之用户组管理1、查看/etc/group文件,只存在名称为mlinux输出结果命令?
linux输出结果命令?,标准,工作,系统,信息,命令,文件,百度,数字,环境,设备,linux标准输入输出在Linux系统中,文件描述符是一个与打开的文件或者Ilinux获取命令输出行?
linux获取命令输出行?,数字,工具,系统,数据,命令,文件,内容,文本,尾部,表示,Linux下用awk获取某一行或某一列的查询结果1、③awk NR==4 || NR=linux输出字符串命令?
linux输出字符串命令?,标准,基础,字符串,资料,简介,商业,数字,系统,命令,汉字,Linux中c语言中汉字字符串的输出引入标准输入输出库:sdtio.h。定linux中用户创建命令?
linux中用户创建命令?,密码,系统,用户,软件,命令,联系方式,管理,信息,用户名,新用户,linux怎么添加用户1、打开xshell软件,远程访问您的服务器linux命令输出中文?
linux命令输出中文?,系统,标的,底部,中文,命令,字符集,输入法,网络安全,级别,语言,linux命令行输入中文确定Linux的firefox版本。下载对应版本linux注销命令用户?
linux注销命令用户?,系统,服务,密码,地址,工作,命令,状态,工具,信息,基础,linux注销用户命令1、shutdown是一个用来安全关闭或重启Linux系统的linux命令行创建用户?
linux命令行创建用户?,系统,密码,软件,新增,用户,联系方式,管理,用户名,命令,账号,Linux中如何创建用户和用户组Linux如何创建用户?打开xshelllinux系统用户命令?
linux系统用户命令?,系统,工作,地址,信息,管理,命令,目录,时间,电脑,名称,请问linux操作系统的命令是什么linux命令是对Linux系统进行管理的命linux命令输出格式化?
linux命令输出格式化?,电脑,系统,标准,位置,设备,图片,首次,管理,网络,命令,Linux里面printf作用是什么?1、Linux下C语言的printf是C标准I/O库linux命令所有用户?
linux命令所有用户?,系统,密码,信息,情况,名称,命令,用户,时间,地址,位置,如何查询linux系统中所有用户的用户名和密码首先进入到linux桌面,在linux命令进入用户?
linux命令进入用户?,系统,密码,用户,地址,信息,软件,命令,用户名,联系方式,电脑,linux进入第一次启动+怎么样创建用户?1、进入Linux系统,登陆管