1

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

我发现的建议之一是:在数据库中存储时间 (hh:mm) 的最佳方法,在这种方法中,您将分钟作为整数存储在数据库中并根据需要对其进行操作。

另一种,在 MySQL 数据库中按时存储跨度的最佳方法?,谈到了简单地使用时间数据类型,但这有一个非常低的范围限制。

有没有更干净的方法来做到这一点?谢谢

4

2 回答 2

2

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

于 2012-12-13T18:46:33.233 回答
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" 

结合时间对象,您可以为各种精度和格式选择许多选项。

于 2012-12-13T21:28:20.303 回答