>>>> I want to build a filter that gets records from database based on >>>> selected date.such as >>>> #### >>>> Product.find(:all, :conditions => ["created_at = ?",selected_date]) >>>> #### >>>> 1 If selected_date is a Date object while created_at is a DateTime >>>> object,is it work? >>>> 2 Do i need to set this? >>> >>> It will work just fine. However, it won't do what you want... created_at >>> is going to contain date/time down to the second (or more). If you pass in >>> a date of "2010-07-15" it's going to append a time of "00:00:00" (most >>> likely). So you're not going to get records created anytime during that >>> day. >>> >>> I'm guessing that's what you want. If so you need to modify that to check >>> for any record created on that *date* using a range or something else. >>> >>>> #### >>>> ActiveRecord::Base.default_timezone = :utc >>>> #### >>>> My talbe has another date type field which i want it to be local >>>> timezone,so it seems i should not set >>>> ActiveRecord::Base.default_timezone = :utc,but my filter will not works >>>> well because of the default local timezone setting for the createdz_at >>>> attribute.How to resolve these problem? >>>> >>>> Thanks! >>>> -- >> >> >> Try: >> >> Product.find(:all, :conditions => ["DATE(created_at) = ?", selected_date]) > > Will that have to do a calculation on every record to determine DATE?
Yes. And as Christos said, you lose the use of the index. > If so would it be more efficient to specify a range for created_at > instead (something like >= selected_date and < selected_date + 1.day)? > Particularly if there were an index on the column. d = Time.now Product.find(:all, :conditions => ["created_at BETWEEN ? AND ?", d.beginning_of_day, d.end_of_day]) would work... -philip -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

