1

我使用 sinatra web 框架和 DataMapper。

我有代码:

@wdata = Data.all(:date => ((DateTime.now - @interval.to_i)..DateTime.now))

当我想要过去 24 小时的数据时,我使用 @interval = 1,过去 7 天 @interval = 7。

我应该如何从例如上个月或去年获取数据?月份可以有 31、30、28 或 29 天我想区分一下。例如,我会从去年 6 月、过去两个月等获取数据。

我在网上搜索了一些教程,但我只找到了 ActiveRecord。:(

4

1 回答 1

0

也许有更优雅的解决方案,但您可以手动执行此类范围

d = DateTime.today
p = d.prev_month
py = d.prev_year
last_month = Data.all(:date => (DateTime.new(p.year, p.month)..DateTime.new(d.year, d.month))
last_year = Data.all(:date => (DateTime.new(py.year)..DateTime.new(d.year))
于 2012-07-27T23:52:25.173 回答