2012-09-23 1 views
2

DataMapper MySql db와 함께 간단한 Sinatra 웹 앱을 사용하고 있습니다. 나는 재산 (Time.now으로 초기화)DataMapper DateTime 조건

property :created_at, DateTime 

와 Datamapper Post 클래스를 선언하고 지금 최근 7 일 모든 게시물의 수를 싶어. 내 검색어

lastweek_posts = Post.count(:created_at.gte => 1.week.ago) 
lastweek_posts = Post.count(:conditions => ["created_at >= ?", Time.now.utc - 1.week]) 

그러나 모두 모두 0을 반환합니다 (데이터베이스에는 오늘의 created_at가있는 여러 항목이 포함되어 있습니다). 올바른 쿼리는 무엇입니까?

미리 감사드립니다.

업데이트 :

Post.all(:created_at.gte => 1.week.ago).length 

는 내 원격 SQL 데이터베이스에서 모든 게시물을 가져 오는 것처럼이 그러나 나쁜 대안 올바른 값을 반환합니다.

+0

두 검색어가 모두 맞고 나와 완벽하게 작동합니다. – UncleGene

+0

의견을 보내 주셔서 감사합니다. 이상하게도 datetime/time 데이터 형식 변환을 사용하는 mysql 어댑터의 내부 문제 일 수 있습니까? – alexleutgoeb

+2

Post.all이 반환하는 것을 확인하고, 루비면에서 계산하여 동일한 결과를 얻을 수 있는지 확인하십시오. 또한 어댑터에 따라 달라질 수 있습니다. 열 유형을 Time으로 변경하십시오 (TIMESTAMP에 맵핑하십시오. 이는 시간 저장에 권장되는 유형 임). – UncleGene

답변

0

좋아, 오류가 발견되었습니다. 에 명시된대로 Sinatra 스크립트에 dm-aggregates이 필요하지 않게되었습니다.

죄송합니다.