On Jul 15, 2010, at 1:17 PM, Philip Hallstrom wrote:
On Jul 15, 2010, at 2:57 AM, Guo Yangguang wrote:
hi
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])

-Rob

Rob Biedenharn          
[email protected]     http://AgileConsultingLLC.com/
[email protected]               http://GaslightSoftware.com/

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

Reply via email to