Database 什么';这是在数据库中存储运行时间的最佳方法
我正在开发一个赛马应用程序,需要将赛马经过的时间存储在一个表中。我将从一个逗号分隔的文件中导入数据,该文件以一种格式提供最终时间,以另一种格式提供内部运行时间。以下是一个例子:Database 什么';这是在数据库中存储运行时间的最佳方法,database,ruby-on-rails-3,database-design,activerecord,time,Database,Ruby On Rails 3,Database Design,Activerecord,Time,我正在开发一个赛马应用程序,需要将赛马经过的时间存储在一个表中。我将从一个逗号分隔的文件中导入数据,该文件以一种格式提供最终时间,以另一种格式提供内部运行时间。以下是一个例子: Final Time: 109.39 (1 minute, 9 seconds and 39/100th seconds) Quarter Time: 2260 (21 seconds and 60/100th seconds) Half Time: 4524 (45 seconds and 24/100
Final Time: 109.39 (1 minute, 9 seconds and 39/100th seconds)
Quarter Time: 2260 (21 seconds and 60/100th seconds)
Half Time: 4524 (45 seconds and 24/100th seconds)
Three Quarters: 5993 (59 seconds and 93/100th seconds)
我希望能够灵活地进行诸如英尺/秒的计算,并将经过的时间转换为拆分。我还希望能够以五分之一秒或百分之一秒的单位轻松显示时间(经过或分割)
Times in fifths: :223 :451 :564 1:091 (note the last digits are superscripts)
Times in hundredths: 22.60 :45.24 :56.93 1:09.39
提前感谢您的投入 如果您使用的是PostgreSQL,则可以使用
interval
datatype。否则,数据库支持的任何整数(int4、int8)或数字都可以。当然,将值存储在单个度量单位上:秒、分钟、毫秒。通常,时间跨度存储为(1)秒或(2)开始/结束日期时间。如果需要,经过的秒数可以是整数或浮点/双精度。你可以创造性地/疯狂地将所有时间存储为毫秒,在这种情况下,你只需要一个整数。这一切都取决于你打算如何使用它,但经过的秒数(如果必要的话,可能作为浮点值)肯定是一个最受欢迎的数字。我认为109.39
表示1分钟9.39秒
是相当愚蠢的。毫无疑问,这是历史传统,但用这种格式进行计算是痛苦的。(并非不可能,但在导入过程中修复它听起来很容易。)
我会以某种十进制格式存储时间——或者是一个表示百分之一秒的整数,就像所有其他时间显示的那样,或者是一个数据库特定的十进制感知格式
标准的浮点表示法最终可能会让你想知道,为什么一匹在20.1秒内跑了两圈的马要花40.200035秒才能同时跑完两圈。我正在使用ruby on rails和postgres数据库。我不确定interval数据类型是否可用。我只是尝试在rails中使用interval,但收到一条错误消息。谢谢你的想法,它会很好地工作。我正在使用rails。因此,也许我可以以毫秒为单位进行存储,然后创建一个helper方法。