对外开放的良好控制台回答你所有的问题。
随着..
调用数据库
User.where(created_at: Time.zone.today.beginning_of_day..Time.zone.today.end_of_day).to_sql
# SELECT "users".*
# FROM "users"
# WHERE ("users"."created_at" BETWEEN '2017-06-06 00:00:00' AND '2017-06-06 23:59:59.999999')
随着...
它调用>=
<
魔法BETWEEN
声明。
User.where(created_at: Time.zone.today.beginning_of_day...Time.zone.today.end_of_day).to_sql
# SELECT "users".*
# FROM "users"
# WHERE ("users"."created_at" >= '2017-06-06 00:00:00' AND
# "users"."created_at" < '2017-06-06 23:59:59.999999')
的Rails 5.1包括一个名为all_day
一个可爱的小帮手,这使得这一切成为可能。它发出相同的语句与..
Users.where(created_at: Time.zone.today.all_day).to_sql
注:
如果你真的偏执,有一个超级重要的救生应用回事,Time.zone.today
可能会在实际上改变从呼叫beginning_of_day
和end_of_day
毫秒,所以你可以做到这一点。
today = Time.zone.today
Users.where(created_at: today.beginning_of_day..today.end_of_day)
'..'是包含的范围。 – sawa
_Sidenote:_执行此行:'(Time.now.beginning_of_day..Time.now.end_of_day).cover? Time.parse('2017-06-06 00:00:00 +0000')'直接在你的控制台中比将问题发送到SO快100倍。 (:created_at => Time.now.beginning_of_day..Time.now.end_of_day).to_sql' – mudasobwa
您可以通过'User.where看到它 – fangxing