Rails ActiveRecord按日期查找/搜索

Sye*_*yed 6 activerecord ruby-on-rails-3.2

我试图通过'created_at'日期找到记录 - 数据库列类型是'datetime',我正在使用来自jQuery的UI DatePicker

我的网址看起来像这样:"localhost:3000/users_supported?selected_date = 2012-10-31"

到目前为止,我做得很好:)我在控制器中的查询看起来像这样:

@support_histories = current_agent.support_histories.where(:created_at => Date.parse(params[:selected_date]))
Run Code Online (Sandbox Code Playgroud)

如何仅通过'datetime'db列中的'date'正确提取记录

我尝试在Rails控制台中执行此操作,但没有运气:

sh = SupportHistory.where(:created_at => DateTime.parse('2012-10-31'))
sh = SupportHistory.where(:created_at => Date.parse('2012-10-31'))
sh = SupportHistory.where(:created_at => DateTime.strptime('2012-10-31', '%Y-%m-%d'))
Run Code Online (Sandbox Code Playgroud)

我有记录,如果我喜欢下面提到的,但这对我没用,因为我试图通过'日期'而不是'日期时间'找到记录

sh = SupportHistory.where(:created_at => '2012-10-31 19:49:57')
Run Code Online (Sandbox Code Playgroud)

Jas*_*ble 24

selected_date = Date.parse(params[:selected_date])
# This will look for records on the given date between 00:00:00 and 23:59:59
sh = SupportHistory.where(
       :created_at => selected_date.beginning_of_day..selected_date.end_of_day)
Run Code Online (Sandbox Code Playgroud)

时区可能是您需要关注的问题,但如果所有时间都在同一时区,这应该有效.