[英]Find records within date range
我设置了search_start_date和search_end_date,然后我想找到属于这个时间范围的记录。 但是我没有得到任何回复使用下面的代码。 我应该改变什么来使这项工作?
search_start_date = "01-01-2013"
search_end_date = "01-12-2013"
@activities = @employee.activities
projects = @activities.where("start_date >= ? and end_date =< ?", search_start_date, search_end_date)
编辑:我现在使用search_start_date = DateTime.new(2013, 1, 1)
,这似乎有效。
你使用的日期含糊不清。 目前尚不清楚它是MM-DD-YYYY还是DD-MM-YYYY。 根据您居住的地区,两者都可能是正确的。 使用默认的ruby明确格式YYYY-MM-DD甚至更好,使用实际的日期对象。
您还可以将字符串解析为日期,如下例所示。 我还纠正了第二个比较运算符,使其更简洁。 我不确定两者是否都能奏效。 而且不要忘了.all
的情况下,你不只是把它从你querstion的故意。
search_start_date = Date.strptime("01-01-2013", "%d-%m-%Y")
search_end_date = Date.strptime("01-12-2013", "%d-%m-%Y")
projects = @activities.where("start_date >= ? and end_date <= ?", search_start_date, search_end_date).all
您需要将“Date”或“Time”对象提供给ActiveRecord查询,尝试以下方法:
search_start_date = Date.parse("01-01-2013")
search_end_date = Date.parse("01-12-2013")
projects = @activities.where("start_date >= ? and end_date =< ?", search_start_date, search_end_date)
只需修改@derekyau解决方案: -
search_start_date = "01-01-2013".to_date
search_end_date = "01-12-2013".to_date
projects = @activities.where("start_date >= ? and end_date =< ?", search_start_date, search_end_date)
编辑:我现在使用search_start_date = DateTime.new(2013, 1, 1)
,这似乎有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.