2010-03-29 82 views
2

我需要抓取一周中同一天的记录,以查看一周前的X天。必须有一个更好的方式来做到这一点比这Rails:按星期几查找时间戳

Transaction.find_by_sql“从交易中选择*,其中提取物(DOW从日期)= 1和organisation_id = 4按日期倒序极限7”

它得到我需要的是Postgres,而不是“Rails-y”。日期是时间戳。 任何人都有建议?

+0

是依赖于用户时区还是服务器的日子? – Anurag 2010-03-29 02:49:32

+0

根据服务器,当天将是当天。 – mikewilliamson 2010-03-29 02:53:21

+0

你需要回去多少个星期? – 2010-03-29 04:55:17

回答

0

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

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) 
+0

谢谢!我会检查一下。 – mikewilliamson 2010-03-29 20:35:22