我想将日期存储在我的 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/