如何减去postgres中的时间戳并在几秒钟内得到结果

时间:2016-04-18 15:54:23

标签: ruby-on-rails postgresql

我尝试将数据与groupdate分组,如下所示:

TimeEntry.from(time_entries.select('upper(time) - lower(time) AS duration, created_at')).group_by_day(:created_at).sum(:duration)

结果是包含这样的项的哈希:

Thu, 24 Mar 2016 00:00:00 UTC => "10:19:37"

我的问题是,我希望持续时间以秒为单位(浮动)而不是字符串" hh:mm:ss",我该如何实现?

我已尝试过upper(time)::float,但它会抛出一个解析异常

1 个答案:

答案 0 :(得分:1)

尝试在EXTRACT声明中使用EPOCH select

time_entries.select("EXTRACT(EPOCH FROM (UPPER(time) - LOWER(time)))")

相关文档示例:http://www.postgresql.org/docs/current/static/functions-datetime.html#FUNCTIONS-DATETIME-EXTRACT