Rails 3:在数据库中存储时间量

时间:2012-12-13 17:14:26

标签: ruby-on-rails-3

有没有办法在数据库中存储天,周或月。我不是在谈论日期(如2012年12月13日),而是谈论时间,例如2周,5天或6个月。

我发现的一个建议是:Best way to store time (hh:mm) in a database,您可以将数据库中的分钟存储为整数并根据需要对其进行操作。

另一个Best way to store span on time in a MySQL database?谈到了简单地使用时间数据类型,但这个范围限制非常低。

有没有更简洁的方法来实现这一目标?感谢

2 个答案:

答案 0 :(得分:2)

是的,有一种更清洁的方法。只需使用postgres和内置数据类型INTERVAL:http://www.postgresql.org/docs/6.3/static/c0804.htm

答案 1 :(得分:1)

对于rails,我最成功的只是在我的模型中存储一个整数字段来表示以秒为单位的累计时间。根据您的使用情况,您可能会更加成功地存储整数分钟。

要使用秒进行演示,您可以执行以下操作:

rails g migration add_seconds_elapsed_to_foo seconds_elapsed:integer

您申请中的某个地方:

@foo.seconds_elapsed
 => 2343 
distance_of_time_in_words(Time.now, Time.now + @foo.seconds_elapsed.seconds, true)
 => "39 minutes" 

结合时间对象,您可以选择多种选项来制作各种精确度和格式。