2012-05-15 201 views
0

我想搜索某個月份的所有聲明。 「declaration_date」是一個日期時間屬性。我有這個,但它失敗了,有什麼想法?從日期時間獲取月份

declaration = Declarations.all(:conditions => ['declaration_date.strftime("%-m") = 2') 
+0

它依賴於SQL方言。請標記您的DBMS。或者,您可以將所有記錄和過濾器放入Ruby中,但速度要慢得多。 – Amadan

回答

0

你想在特定年份的一個月內申報嗎?如果是這樣,請嘗試如下所示:

time_range = (DateTime.new(2001,2,3) - 1.month)..DateTime.new(2001,2,3) 
declaration = Declaration.where('declaration_date' => time_range) 

您可以按照此技術在幾年內的同一個月內獲取聲明。

又見,活動記錄查詢接口文檔http://guides.rubyonrails.org/active_record_querying.html

+0

這效果很好,謝謝 – John

+0

歡迎您! – novemberkilo

0

我期待的strftime返回字符串的11.3節,和你與整數2.嘗試使用字符串比較是比較「2」。

declaration = Declarations.all(:conditions => ["'declaration_date.strftime("%-m") = '2'") 
相關問題