2012-05-15 4 views
0

특정 달의 모든 선언을 검색하고 싶습니다. "declaration_date"는 datetime 속성입니다. 나는 가지고있다. 그러나 그것은 실패한다, 어떤 생각?날짜/시간에서 월 가져 오기

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

이것은 SQL 언어에 따라 다릅니다. DBMS에 태그하십시오. 또는 모든 레코드를 가져 와서 루비에서 필터링 할 수는 있지만 훨씬 느립니다. – Amadan

답변

0

특정 연도의 한 달 안에 신고를 원하십니까? 그렇다면 다음과 같이 시도하십시오.

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

이 기술을 사용하여 수개월에 걸쳐 같은 달에 선언을 얻을 수 있습니다.

는 또한 액티브 레코드 쿼리 인터페이스 문서

+0

이 작품은 위대한 감사합니다 – John

+0

당신은 오신 것을 환영합니다! – novemberkilo

0

나는의 strftime 문자열을 반환 할 것으로 예상 http://guides.rubyonrails.org/active_record_querying.html의 섹션 11.3을 참조하십시오, 당신은 문자열과 비교 정수 2. 시도와 비교되는 '2'.

declaration = Declarations.all(:conditions => ["'declaration_date.strftime("%-m") = '2'") 
관련 문제