0

我正在构建一个应用程序,我发现有必要在我的查询中执行一些简单的数学计算。本质上,我有一个包含标准普尔 500 指数每日值的数据库,我需要根据输入的标准获取天数列表。

用户输入日期范围和百分比范围。例如,如果日期范围是 2013 年 1 月 1 日 - 2013 年 4 月 1 日,百分比范围是 -1% - 1%,则它应该返回所有 S%P 500 日值之间的列表收盘价在 % 范围内。

问题是我实际上没有 %; 的列。我只有一列用于打开/关闭值。计算仅给定开盘和收盘值 (close-open)/open*100 的 % 非常简单。但我不确定如何在查询中执行此操作。

现在,查询在日期范围内成功搜索。我的查询是:

@cases = Close.find(:all, conditions:["date between ? and ?",
    @f_start, @f_end])

但是我怎样才能检查当前行的 (close-open)/open*100 值是否在两个 % 范围值之间?

或者,如果这是不可能的或不正确的做法,我应该在哪里处理这个?

4

1 回答 1

0

您可以在 Ruby/Rails 中自己计算开/关范围,并以与日期范围相同的方式传递它。就像是:

percent = @f_percent / 100.0 # 5% => 0.05
low = @f_close * (1.0 - percent)
high = @f_close * (1.0 + percent)
Close.where 'date between ? and ? AND close between ? and ?', \
  @f_start, @f_end, low, high
于 2013-04-08T05:32:11.023 回答