【发布时间】:2011-05-21 11:48:47
【问题描述】:
我想在我的数据库中存储事件的日期,但我想这样做而不存储有关秒或小于秒的任何信息。使用 Rails,在我的迁移中,我可以选择创建 date 列或 datetime 列,其中第一个不太准确,而第二个则太多(最多到第二个和更少)。我应该选择哪种类型来存储这样的日期?目前我正在使用datetime,并在每次在模型中设置某个日期时手动将秒数设置为固定值(例如 0)。
类似这样的:
self.date ||= Time.now.change(:sec => 0)
我完全跑题了吗?我应该只为日期的每个组成部分使用一个整数字段吗? (年、月、日等...)还是datetime 是正确的类型,但我不明白它的用途? (我认为它适用于时间戳和秒很重要的事情)
【问题讨论】:
-
是的,
datetime是正确的类型。您唯一的其他选择是varchar或只是一个普通的旧timestamp/int列。但与datetime相比,这些都有其他缺点,您仍然需要手动从值中删除秒数。
标签: ruby-on-rails database datetime date types