4
created_at
날짜가 현재 날짜와 가장 가까운 레코드를 얻고 싶습니다. 활성 레코드 'where
절을 사용하여이 작업을 수행하려면 어떻게해야합니까?현재 날짜와 가장 가까운 레코드 찾기
created_at
날짜가 현재 날짜와 가장 가까운 레코드를 얻고 싶습니다. 활성 레코드 'where
절을 사용하여이 작업을 수행하려면 어떻게해야합니까?현재 날짜와 가장 가까운 레코드 찾기
당신이 좋아하는 뭔가 과거에 가장 가까운 기록을 찾을 수 : 마찬가지로
Record.where("created_at <= ?", Date.today).order_by("created_at DESC").limit(1)
, 당신은 미래
Record.where("created_at >= ?", Date.today).order_by("created_at ASC").limit(1)
에 가장 가까운 기록을 가지고 그리고 느릅 나무 하나가 가장 가까운 비교할 수 있습니다 현재 날짜로 ...
단일 요청으로 해결할 수있는 해결책이있을 수 있지만 SQL 서버를 사용하는 경우 방법을 찾을 수 없습니다. DATEDIFF 메소드가 있습니다. 엘프).
업데이트 : 모든 created_at
과거에 있는지 경우 미샤
-감사합니다, 당신은 마지막으로 생성 된 레코드를 찾고, 그는
Record.order("created_at").last
을 작성할 수 있습니다 업데이트
모든 레코드를 만들려면 같은 날짜에 마지막 레코드를 만듭니다.
last_record_date = Record.max(:created_at)
Record.where(:created_at => (last_record_date.at_beginning_of_day)..(last_record_date.end_of_day))
미래에는 'created_date'가 가능하지만 레일스의 자동 타임 스탬프를 사용하면 발생하지 않습니다. 그래서 당신은'where' 절을 생략 할 수 있습니다. 'order_by ("created_at DESC")를 사용하면 충분합니다. – Mischa
@ 미샤 당신이 옳습니다! 나는 해결책을 간단하게 생각하지 않고, 질문을 다시 읽었을 때 날짜가 될 수 있다고 생각하는 답변을 작성하고'created_at'로 변경했습니다. 감사. – Baldrick
감사합니다. Baldrick 오늘 날짜에 가장 가까운 레코드를 가져오고 정렬하지 않고 필터링하는 것이 좋습니다. MIN (Date (created_at) - Date.today) 라인을 따라 뭔가가 있습니다. 무슨 뜻인지 알 겠어? – chell