0

我想搜索某个月份的所有声明。“declaration_date”是一个日期时间属性。我有这个,但它失败了,有什么想法吗?

declaration = Declarations.all(:conditions => ['declaration_date.strftime("%-m") = 2')
4

2 回答 2

0

我希望 strftime 返回一个字符串,并且您将它与整数 2 进行比较。尝试将其与字符串 '2' 进行比较。

declaration = Declarations.all(:conditions => ["'declaration_date.strftime("%-m") = '2'")
于 2012-05-15T11:07:23.270 回答
0

您想在特定年份的一个月内进行申报吗?如果是这样,请尝试以下操作:

time_range = (DateTime.new(2001,2,3) - 1.month)..DateTime.new(2001,2,3)
declaration = Declaration.where( 'declaration_date' => time_range )

您可以按照此技术在几年内的同一个月内获得声明。

另请参阅 Active Record 查询接口文档http://guides.rubyonrails.org/active_record_querying.html的第 11.3 节

于 2012-05-15T10:51:30.107 回答