Rails:按周显示时间戳

时间:2010-03-29 02:22:19

标签: ruby-on-rails

我需要抓住一周中同一天的记录。必须有一个更好的方法来做到这一点:

Transaction.find_by_sql“select * from EXTRACT(DOW from date)= 1和organisation_id = 4 order by date desc limit 7”

它让我得到了我需要的东西,但Postgres具体而不是“Rails-y”。日期是时间戳。 有人有建议吗?

2 个答案:

答案 0 :(得分:1)

你想回去多少天?

我写了一个名为by_star的宝石,它有一个动态的查找器,适合在过去找到一定天数。如果天数总是一个数字,你可以使用这个查找器:

Transaction.as_of_3_days_ago

如果它是动态的,那么我建议使用futurebetween之类的内容,具体取决于您将来是否有交易(即时间旅行):

Transaction.future(params[:start_date].to_time)
Transaction.between(params[:start_date].to_time, Time.now)

答案 1 :(得分:0)

AFAIK Rails没有任何方法可以通过其他方式执行此操作。这是最好,更快的解决方案 - 在日期列上构建DOW索引并使用您的查询。