2016-08-16 4 views
1

이 쿼리는 오류를 생성하지 않지만 실제로는 EXTRACT(EPOCH FROM relationships.created_at)이 의미하는 바를 수행하지 않습니다.레일즈에서 SQL 쿼리를 생성하는 방법을 확인하는 방법

last_check = @user.last_check.to_i 
@new_relationships = User.select('"rels_unordered".*') 
         .from("(#{@rels_unordered.to_sql}) AS rels_unordered") 
         .joins(" 
        INNER JOIN relationships 
        ON   rels_unordered.id = relationships.character_id 
        WHERE  EXTRACT(EPOCH FROM relationships.created_at) > #{last_check} 
        GROUP BY relationships.created_at 
        ORDER BY relationships.created_at DESC 
        ") 

은 어떻게 EXTRACT(EPOCH FROM relationships.created_at)가 정확히 무엇을 생산 확인합니까? 서버 로그에 표시되지 않으면 쿼리가 반복됩니다. (. 적어도 로그는 #{last_check}가 제대로 나는 문제가 시대의 코드로 생각 이유입니다, 1471364015 같은 숫자를 생성하는 것을 보여 않음)

답변

1

난 그냥 MySQL의에 가서 그것을 밖으로 시도합니다 :

SELECT EXTRACT(EPOCH FROM relationships.created_at) FROM relationships limit 0,1; 

그리고 어떤 답을 얻을 수 있는지 알아보십시오. 필요한 경우 위의 내용을 변경하여 특정 레코드를 지정하십시오.

큰 문제는 EPOCH 매개 변수 일 수 있습니다. 나는 그것이 유효한 지 확신하지 못한다. EXTRACT 및 해당 parameters에 대한 mySQL 참조 서를 참조하십시오.

관련 문제