미래에 날짜가있는 SQLite DB의 모든 레코드를 선택하려고합니다.rails3 sqlite 날짜 비교 반환 null 집합
Record.where('scheduled_date > ?', Time.now)
내 컴퓨터에서는 현재 빈 배열을 반환합니다. 나는 다음과 같은 사용하는 경우
그러나 :
Record.all.map { |record| record if record.scheduled_date > Time.now }
나는 미래의 날짜와 모든 기록의 배열을받을 수 있습니다.
또한 내 컴퓨터에서 동일한 레일스 프로젝트를 실행중인 동료가 ActiveRecord 쿼리를 사용하여 예상 결과 배열을 성공적으로 반환 할 수있었습니다. 최근 프로젝트에 대한 변경 사항을 가져온 후이 쿼리가 작동하지 않고 컴퓨터가 제 것처럼 작동합니다.
이 Rails 프로젝트에 SQLite (1.3.6 버전) 또는 Rails3 (3.2.3 버전)이 설치된 환경에 문제가있을 수 있으며 어디서 볼지 모른다고 생각됩니다. 어떤 아이디어가이 원인 일 수 있습니까?
아마도 UTC 문제 일 수 있습니다. Ruby Record.all.map을 통해로드 할 때 레코드 날짜가 이미 UTC로 변환됩니다. 그러나 where 절에서 Time.now는 현지 시간입니다. Time.now.iso8601을 사용하면 무엇을 얻게됩니까? – peterept
감사합니다. Peterept, Time.now.iso8601이 문제를 해결했습니다! –