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 데이터베이스에서 모든 게시물을 가져 오는 것처럼이 그러나 나쁜 대안 올바른 값을 반환합니다.
두 검색어가 모두 맞고 나와 완벽하게 작동합니다. – UncleGene
의견을 보내 주셔서 감사합니다. 이상하게도 datetime/time 데이터 형식 변환을 사용하는 mysql 어댑터의 내부 문제 일 수 있습니까? – alexleutgoeb
Post.all이 반환하는 것을 확인하고, 루비면에서 계산하여 동일한 결과를 얻을 수 있는지 확인하십시오. 또한 어댑터에 따라 달라질 수 있습니다. 열 유형을 Time으로 변경하십시오 (TIMESTAMP에 맵핑하십시오. 이는 시간 저장에 권장되는 유형 임). – UncleGene