I need to query comments made in one day. The field is part of the standard timestamps, is created_at. The selected date is coming from a date_select. How can I use ActiveRecord to do that?
I need somthing like:
"SELECT * FROM comments WHERE created_at BETWEEN '2010-02-03 00:00:00' AND '2010-02-03 23:59:59'"
Just a note that the currently accepted answer is deprecated in Rails 3. You should do this instead:
Or, if you want to or have to use pure string conditions, you can do:
You could use below gem to find the records between dates,
This gem quite easy to use and more clear By star am using this gem and the API more clear and documentation also well explained.
Here you could pass our field also
Post.by_month("January", field: :updated_at)
Please see the documentation and try it.
I would personally created a scope to make it more readable and re-usable:
In you Comment.rb, you can define a scope:
Then to query created between:
Hope it helps.
I ran this code to see if the checked answer worked, and had to try swapping around the dates to get it right. This worked--
If you're thinking the output should have been 36, consider this, Sir, how many days is 3 days to 3 people?