ruby-on-rails – 使用Rails 4和postgres查询范围中日期的最简单
发布时间:2020-12-17 01:50:24 所属栏目:百科 来源:网络整理
导读:我正在尝试在日期范围内选择具有created_by属性的所有记录: @start = params[:start].to_datetime@end = params[:end].to_datetime@registrations = Registration.where("created_at = #{ @start } and created_at = #{ @end }") 但是我从postgres那里得到
我正在尝试在日期范围内选择具有created_by属性的所有记录:
@start = params[:start].to_datetime @end = params[:end].to_datetime @registrations = Registration.where("created_at >= #{ @start } and created_at <= #{ @end }") 但是我从postgres那里得到一个错误: PG::Error: ERROR: syntax error at or near "T00" LINE 1: ...M "registrations" WHERE (created_at >= 2013-06-01T00:00:00+... 我一直在搜索这个,但谷歌这次没有来过…… 解决方法
在我看来,最好的方法是在where子句中使用range作为:
Registration.where(created_at: @start..@end) 此查询也不容易进行SQL注入,因为@start和@end已在查询中的DateTime中进行了类型转换. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |