如何根据'created_at'字段的月份设置条件

时间:2011-10-15 16:10:59

标签: ruby-on-rails ruby

不起作用的控制器代码:

@mailings = Mailing.find(:all, :conditions => ["created_at.month = ?", m])

错误消息:

Mysql::Error: Unknown column 'created_at.month' in 'where clause': SELECT * FROM `mailings` WHERE (created_at.month = 10)

谢谢!

2 个答案:

答案 0 :(得分:3)

:conditions的{​​{1}}参数直接插入到生成的SQL中。因此,您可以使用SQL命令。

如果您使用MySQL,可以尝试以下操作:

find

或者,对于SQLite:

@mailings = Mailing.find(:all, :conditions => ["MONTH(created_at) = ?", m])

答案 1 :(得分:1)

尝试:

@mailings = Mailing.find(:all, :conditions => ["MONTH(created_at) = ?", m])

假设您使用的是MySQL,您可以在文档中找到更多内容:MySQL Date and Time Functions