实现此ActiveRecord查询的有效方法

时间:2010-07-14 12:23:36

标签: mysql ruby-on-rails activerecord

我使用的是MySQL数据库,里面有一个日期时间字段。在我的rails应用程序中,我必须触发类似于以下的查询,

MyTable.all(:conditions=>{my_date.to_date=>"2010-07-14"})

my_date字段的数据类型为datetime。我应该省略时间,并应直接将其与日期进行比较(但由于显而易见的原因,我在my_date.to_date附近遇到错误)。如何为这种情况编写ActiveRecord查询?

感谢。

2 个答案:

答案 0 :(得分:2)

MyTable.all(:conditions=>["DATE_FORMAT(my_date, '%Y-%d-%m')=?", "2010-07-14"])

EDITED我认为它应该是

MyTable.all(:conditions=>["DATE_FORMAT(my_date, '%Y-%m-%d')=?", "2010-07-14"])

答案 1 :(得分:0)

如果您索引日期列,这是一个有效的解决方案:

d = "2010-07-14".to_date
MyTable.all(:conditions=>["my_date BETWEEN ? AND ?", 
           d.beginning_of_day, d.end_of_day)