2010-07-23 32 views
1

我目前有一个名为Job的模型,它有一个名为CPU的属性。这对应于作业正在运行的CPU时间。我想为特定日期添加所有作业的所有时间属性。此列的时间格式为00:00:00。因此,我认为这将工作:在轨道上添加红宝石时间

def self.cpu_time 
    sum(:cpu) 
end 

它返回以下“星期六01 01 00:00:00 UTC 2000”。

对于我的测试数据,我用下面的CPU时间: ○点○○分46秒 〇时26分46秒

任何帮助,将不胜感激

这解决了我的问题,但它似乎并不成为导轨的方式:

def self.cput 
    @times = find(:all, 
       :select => 'cput') 
    @total_time =0 
    for time in @times do 
     @total_time += time.cput.to_i - 946684800 
     end 
    @total_time 

    end 

回答

0

您不会说明您在cpu列使用的数据类型。就个人而言,我会在几秒钟内存储它,然后将其转换为小时,分钟和秒数。

+0

CPU列存储在时间格式00:00:00 – jalagrange 2010-07-23 14:25:36

+0

你会如何建议我存储在几秒钟内的时间?我目前正在解析其中CPU时间节点也是时间格式为00:00:00的XML文件。我如何从该格式更改为秒? – jalagrange 2010-07-23 14:49:32

+3

时间对象表示特定时间,而不是时间长度。如果您想存储一段时间,请存储秒数。您可以将“00:00:00”字符串转换为“h,m,s =”01:12:34“.split(':'); h.to_i * 3600 + m.to_i * 60 + s' – mckeed 2010-07-23 16:03:24