使用Rails中的Active Record查询“任意数字”的更好方法

时间:2013-11-19 11:16:59

标签: ruby-on-rails activerecord ruby-on-rails-4

我有一个带有整数日期字段格式的模型,如下所示:20131211。选择所有具有与我想要替换的完全相同的数字的对象的相应Activerecord查询?所以在我的情况下,它的201312NN或其他人的可能是1234NN78。

我可以选择像

这样的东西
scope :show_query, lambda { where('startdate <= and enddate >= ?', 20131201, 20131231) }

但是没有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

如果你的日期真的是一个整数,则除以100

scope : show_query, lambda { where ('date DIV 100 = ?', 201312) }

或者您也可以使用:

where('date like ?', '201312__')

但那个慢了。 使用MySQL,您不需要将日期转换为String,我不确定它是否是标准SQL。