2012-04-06 31 views
5

Tôi đang cố gắng tạo phạm vi truy vấn created_at sẽ ghi lại tất cả hồ sơ được tạo từ nửa đêm UTC (mặc định db) đến bây giờ. Trong quá khứ tôi đã có thể truy vấn trong thời gian dao động với:Cách truy vấn cho tất cả các bản ghi được tạo hôm nay (nửa đêm UTC..Now)

created_at => (24.hours.ago..Time.now) 

Nhưng điều chỉnh ở trên đối với trường hợp sử dụng mới không hoạt động:

created_at => (Date.today..Time.now) 

Bất kỳ đề xuất về làm thế nào tôi có thể cập nhật create_at phạm vi được tất cả các bản ghi ngày hôm nay/không phải trong 24 giờ qua?

Cảm ơn

Trả lời

10
created_at => (DateTime.now.at_beginning_of_day.utc..Time.now.utc) 
0
Date.today.beginning_of_day.utc..Date.today.end_of_day.utc 
2

Tôi nghĩ rằng, bạn có thể thử cho dưới đường là tốt.

ModelName.all :condition => ["DATE(created_at) = DATE(?)", Time.now] 

HOẶC Trong Rails 3

Model.where "DATE(created_at) = DATE(?)", Time.now 

Cheers!

2

Tôi nghĩ rằng múi giờ nên được xem xét.

where(:created_at => Time.zone.now.beginning_of_day.utc..Time.zone.now.end_of_day.utc)

Và Rails sẽ thay đổi theo thời gian utc tự động, vì vậy sau đây cũng là ok.

where(:created_at => Time.now.beginning_of_day..Time.now.end_of_day)

Các vấn đề liên quan