我正在尝试根据created_at
的日期提交记录。
为此,我在日期格式中传递from_date
和to_date
日期选择器(例如"%y/%m/%d"
)。
请帮我解决如何在控制器中编写查询以获取日期之间的记录。
@users = User.where(['created_at = ? and created_at = ?',from_date,to_date])
感谢。
答案 0 :(得分:5)
您可以使用范围语法,看起来更干净:
@users = User.where(:created_at => start_date.to_time..end_date.to_time)
答案 1 :(得分:2)
@users = User.where("created_at between (?) and (?)", start_date, end_date)
或
@users = User.where("created_at >= (?) AND created_at <= (?)", start_date, end_date)
或在最坏的情况下
@users = User.where("created_at between (?) and (?)", start_date.to_time, end_date.to_time)
答案 2 :(得分:1)
最好的解决方案是,它将包装日期从00:00:00小时和23:59:59
@users = User.where(created_at: from_date.beginning_of_day..to_date.end_of_day)
答案 3 :(得分:0)
这将100%有效。
starting_date_month = params[:date_from].split("-")[0].to_i
starting_date_year = params[:date_from].split("-")[1].to_i
ending_date_month = params[:date_to].split("-")[0].to_i
ending_date_year = params[:date_to].split("-")[1].to_i
records = self.where("extract(month from created_at) BETWEEN ? AND ? AND extract(year from created_at) between ? AND ? AND status = ? AND v_id = ?", starting_date_month,ending_date_month,starting_date_year,ending_date_year,6,params[:v_id])