2012-07-13 47 views
1

我用西納特拉Web框架和DataMapper的。DataMapper的查詢 - 去年,上個月等

我有代碼:

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

當我從過去24小時內要數據我用@interval = 1,最近7天@interval = 7

我應該怎樣從例如獲取數據上個月還是去年?一個月可以有31,30,28或29天,我想這個區別。我會例如得到6月份的數據,去年最後兩個月,等

我搜索網絡中的一些教程,但我發現只有ActiveRecord的。 :(

+0

你們今天給最後一個月是14/7/2012?難道1/6/2012-30/6/2012或13/6/2012-14/7/2012? – Wei 2012-07-13 23:58:09

回答

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