0

是否有一个 Ruby gem 可以实现类似于PostgreSQL的范围计算?特别是与时间相关的范围函数?

4

2 回答 2

0

在不确切知道您要完成什么的情况下很难回答这个问题,但您可能想查看 ActiveSupport gem 的 CoreExtensions 模块:http: //guides.rubyonrails.org/active_support_core_extensions.html

安装 ActiveSupportgem install activesupport或将其添加到您的 Gemfile。

使用 ActiveSupport,您可以执行以下操作:

require 'active_support/core_ext'

10.days.from_now #=> 2013-06-08 08:37:34 -0400
DateTime.now.beginning_of_year #=> Tue, 01 Jan 2013 00:00:00 -0400
1.megabyte #=> 1048576
(1..10).step(2) #=> [1, 3, 5, 7, 9]
(1..10).overlaps?(0..7) #=> true
Date.current.next_month #=> Sat, 29 Jun 2013
Date.current.prev_week(:friday) #=> Fri, 24 May 2013

我希望这有帮助。

于 2013-05-29T12:43:50.987 回答
0

Range#cover?测试对象是否在范围的开始和结束之间。

Ruby 的等价物'[2011-01-01,2011-03-01)'::tsrange @> '2011-01-10'::timestamp是:

(Date.new(2011,01,01)..Date.new(2011,03,01)).cover? Date.new(2011,01,10)
# => true

它测试Date.new(2011,01,01) <= Date.new(2011,01,10) <= Date.new(2011,03,01).

于 2013-05-29T12:02:08.093 回答