[英]How to use datetime in the condtions of a find/count in Ruby on Rails
我試圖按日期時間計算某個表中的行數。
更具體地說,是在某個月之前,但找不到正確的條件為其編寫條件。
xxx.count(:all, :conditions=> :xxx => yyy)
我有一個日期時間yyy
與xxx
進行比較,但只想比較年份和月份。
更有效的方法是這樣的:
range = Date.today.beginning_of_month..Date.today.end_of_month
Model.count(:conditions => {:date_field => range})
這將生成一個范圍條件,如果您在date_field上具有索引,則該條件將非常快,即使是數百萬行。
我有一個名為by_star的插件/ gem,如果您將gemcutter.org作為源之一,則可以僅使用sudo gem install by_star
。
該插件可讓您執行以下操作:
Post.by_month("January", :year => 2009)
從2009年1月起,它將返回Post
模型中的所有記錄。
這可能有效。
:conditions => ["month(date_field) = ? AND year(date_field) = ?", month, year]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.