我需要抓住一周中同一天的记录。必须有一个更好的方法来做到这一点:
Transaction.find_by_sql“select * from EXTRACT(DOW from date)= 1和organisation_id = 4 order by date desc limit 7”
它让我得到了我需要的东西,但Postgres具体而不是“Rails-y”。日期是时间戳。 有人有建议吗?
答案 0 :(得分:1)
你想回去多少天?
我写了一个名为by_star的宝石,它有一个动态的查找器,适合在过去找到一定天数。如果天数总是一个数字,你可以使用这个查找器:
Transaction.as_of_3_days_ago
如果它是动态的,那么我建议使用future
或between
之类的内容,具体取决于您将来是否有交易(即时间旅行):
Transaction.future(params[:start_date].to_time)
Transaction.between(params[:start_date].to_time, Time.now)
答案 1 :(得分:0)
AFAIK Rails没有任何方法可以通过其他方式执行此操作。这是最好,更快的解决方案 - 在日期列上构建DOW索引并使用您的查询。