# Beginner :conditions question

**URL:** <https://www.ruby-forum.com/t/beginner-conditions-question/87576>\
**Category:** Rails\
**Created:** [March 4, 2007, 2:40am UTC](https://www.ruby-forum.com/t/beginner-conditions-question/87576 "2007-03-04T02:40:00Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![taylorstrait](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/b5a626/32.png) [@taylorstrait](https://www.ruby-forum.com/u/taylorstrait)\
**Post date:** [March 4, 2007, 2:40am UTC](https://www.ruby-forum.com/t/beginner-conditions-question/87576/1 "2007-03-04T02:40:00Z")

</div>

So I’m trying to grab birthdays for the current month. But I have to do  
some magic inside a condition and this messes up AR. Here is what I am  
using:

@upcoming\_birthdays = People.find(:all, :conditions =\>  
“birthdate.strftime(’%M’) = Time.today.strftime(’%M’)”) %\>

Of course find is passing this directly and DQL doesn’t know what to do  
with it. What is the correct way to pass this condition? Thanks!

---

<div class="post-metadata">

**Author:** ![taylorstrait](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/b5a626/32.png) [@taylorstrait](https://www.ruby-forum.com/u/taylorstrait)\
**Post date:** [March 4, 2007, 7:36am UTC](https://www.ruby-forum.com/t/beginner-conditions-question/87576/2 "2007-03-04T07:36:32Z")

</div>

Hello,

Firstly, numeric months are “%m” , so maybe changing “M” to “m” will be  
enough.

But, :conditions have to be written pretty much in SQL, and I think you  
need  
to pass in whole SQL date strings as well. Try something like:

:conditions =\> [ “birthdate BETWEEN Time.now.strftime(”%Y-%m-%01  
%H:%M:%S") AND Time.now.strftime("%Y-%m-%31 %H:%M:%S")" ])

Actually, rails extends Date and Time in neat ways. You could write  
something like Time.now.at\_beginning\_of\_month.to\_s(:db) instead of  
mucking  
about with strftime at all.

You can read up on all that in  
ActiveSupport::CoreExtensions::Time::Calculations in the api docs.

Lemme know if that works for you.

J
