# Converting times for db query

**URL:** <https://www.ruby-forum.com/t/converting-times-for-db-query/121564>\
**Category:** Rails\
**Created:** [November 28, 2007, 11:04pm UTC](https://www.ruby-forum.com/t/converting-times-for-db-query/121564 "2007-11-28T23:04:59Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![blinking\_bear](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/a9a28c/32.png) [@blinking\_bear](https://www.ruby-forum.com/u/blinking_bear)\
**Post date:** [November 28, 2007, 11:04pm UTC](https://www.ruby-forum.com/t/converting-times-for-db-query/121564/1 "2007-11-28T23:04:59Z")

</div>

Picking up a rails project for the first time in a few months and  
drawing a  
blank here…

I want to compare a created\_at datetime field in a find() call

@users\_week = User.count( :conditions =\> “created\_at \> ‘#{7.days.ago}’”)

MySQL doesn’t like the format of that date so I added this:

class Time  
def to\_db  
self.strftime("%Y-%m-%d %H:%M:%S.0")  
end  
end

and then:

@users\_week = User.count( :conditions =\> “created\_at \>  
‘#{7.days.ago._to\_db_  
}’”)

I’m sure there is a ‘dead simple’ way to do this

thanks

---

<div class="post-metadata">

**Author:** ![blinking\_bear](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/a9a28c/32.png) [@blinking\_bear](https://www.ruby-forum.com/u/blinking_bear)\
**Post date:** [November 28, 2007, 11:13pm UTC](https://www.ruby-forum.com/t/converting-times-for-db-query/121564/2 "2007-11-28T23:13:13Z")

</div>

Mr Bear -

On 28-Nov-07, at 5:04 PM, blinking bear wrote:

> @users\_week = User.count( :conditions =\> “created\_at \> ‘#  
> {7.days.ago.to\_db}’”)

methinks 7.days.ago.to\_s(:db) will get you there.

cheers, little\*bear

---

<div class="post-metadata">

**Author:** ![blinking\_bear](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/a9a28c/32.png) [@blinking\_bear](https://www.ruby-forum.com/u/blinking_bear)\
**Post date:** [November 28, 2007, 11:20pm UTC](https://www.ruby-forum.com/t/converting-times-for-db-query/121564/3 "2007-11-28T23:20:49Z")

</div>

Haha - I new it! It’s been too long… thanks

---

<div class="post-metadata">

**Author:** ![blinking\_bear](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/a9a28c/32.png) [@blinking\_bear](https://www.ruby-forum.com/u/blinking_bear)\
**Post date:** [November 28, 2007, 11:33pm UTC](https://www.ruby-forum.com/t/converting-times-for-db-query/121564/4 "2007-11-28T23:33:06Z")

</div>

That works as well - thank you.

---

<div class="post-metadata">

**Author:** ![blinking\_bear](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/a9a28c/32.png) [@blinking\_bear](https://www.ruby-forum.com/u/blinking_bear)\
**Post date:** [November 28, 2007, 11:26pm UTC](https://www.ruby-forum.com/t/converting-times-for-db-query/121564/5 "2007-11-28T23:26:05Z")

</div>

On Nov 28, 2007, at 5:12 PM, Jodi S. wrote:

> > and then:
> > 
> > @users\_week = User.count( :conditions =\> “created\_at \>  
> > ‘#{7.days.ago.to\_db}’”)
> 
> methinks 7.days.ago.to\_s(:db) will get you there.
> 
> cheers, little\*bear

Well, if it’s “dead simple” that you want, why not:

@users\_week = User.count( :conditions =\> [“created\_at \> ?”, 7.days.ago])

Then you let the database adapter worry about both the formatting  
(which Rails gives you as 7.days.ago.to\_s(:db) anyway, no need to  
define your own) and the quoting.

-Rob

Rob B. [http://agileconsultingllc.com](http://agileconsultingllc.com)  
removed\_email\_address@domain.invalid
