假设你正在实现一个出版物数据库,并创建迁移以表示不同的出版物。每个出版物都有一个与之相关联的“年份”。
t.column :year, ???
这个“年份”最好表示为整数、日期还是日期时间?
假设你正在实现一个出版物数据库,并创建迁移以表示不同的出版物。每个出版物都有一个与之相关联的“年份”。
t.column :year, ???
这个“年份”最好表示为整数、日期还是日期时间?
我建议使用整数。 Date
和 DateTime
都比你想要的精度更高,这可能会误导你。即使你只初始化了年份,它们也会存储默认的月份和日期(1月1日)。例如,如果你使用了 Date
,你的输出将会是这样的:
>> m = YourModel.create(:year => '2008')
>> m.year.to_s
=> "2008-01-01"
如果使用整数,您会得到您所期望的结果:
>> m = YourModel.create(:year => '2008')
>> m.year.to_s
=> "2008"
我建议遵循Rails的惯例,使用Date
数据类型。这样,如果您将来确实需要月份和日期,可以轻松获取。而且,这样做非常简单:
YourModel.date.year # => "1999"
嗯,如果你只关心年份,整数就足够了。如果你不确定自己永远不需要月份和日期,则使用日期格式;如果你还可能需要小时/分钟/秒钟,则使用日期时间格式。但是,如果你需要日期时间格式,那么它就不应该被称为“年”:-)。