我想搜索某個月份的所有聲明。 「declaration_date」是一個日期時間屬性。我有這個,但它失敗了,有什麼想法?從日期時間獲取月份
declaration = Declarations.all(:conditions => ['declaration_date.strftime("%-m") = 2')
我想搜索某個月份的所有聲明。 「declaration_date」是一個日期時間屬性。我有這個,但它失敗了,有什麼想法?從日期時間獲取月份
declaration = Declarations.all(:conditions => ['declaration_date.strftime("%-m") = 2')
你想在特定年份的一個月內申報嗎?如果是這樣,請嘗試如下所示:
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
這效果很好,謝謝 – John
歡迎您! – novemberkilo
我期待的strftime返回字符串的11.3節,和你與整數2.嘗試使用字符串比較是比較「2」。
declaration = Declarations.all(:conditions => ["'declaration_date.strftime("%-m") = '2'")
它依賴於SQL方言。請標記您的DBMS。或者,您可以將所有記錄和過濾器放入Ruby中,但速度要慢得多。 – Amadan