2012-06-30 4 views
1

특정 시간에 생성 된 레코드를 어떻게 쿼리 할 수 ​​있습니까? 각 레코드에 대해 db에 시간 열을 추가해야합니까? 루비는 created_at.hour을위한 좋은 값을 반환하지만 아래와 같은 쿼리에서 사용할 수 없습니다created_at 시간에 대한 쿼리

results = Record.where("created_at.hour = ?", the_hour) 
+0

당신이 가지고있는 것은 잘될 것입니다. 변수'the_hour'는 정수입니까? – varatis

+0

the_hour는 정수입니다. 오류 메시지 : Mysql2 :: 오류 : 'where 절'에서 'created_at.hour'알 수없는 열 – chief

+0

레일즈가'created_at.hour'라는 열을 찾는 중 문제가 발생했습니다. Rails는'.hour'가 실제로 메소드라는 것을 이해하지 못합니다. –

답변

2

보십시오 : 당신은 추출하기 위해 MySQL을 hour 기능을 사용할 필요가

results = Record.where("hour(created_at) = ?", the_hour) 

타임 스탬프에서 시간.

+0

감사합니다. – chief

0

나중에 다른 사람들을위한 참조 용입니다.

hour 타임 스탬프에서 시간을 추출하는 기능을 사용할 수없는 SQLite를 사용하는 경우이 솔루션을 사용하십시오.

def find_record_by_created_at_hour(certain_hour) 
    Record.all.select {|record| record.created_at.hour == certain_hour } 
end 
관련 문제