Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 选择日期差小于X小时的所有ActiveRecord实例_Sql_Ruby On Rails_Ruby On Rails 4_Activerecord - Fatal编程技术网

Sql 选择日期差小于X小时的所有ActiveRecord实例

Sql 选择日期差小于X小时的所有ActiveRecord实例,sql,ruby-on-rails,ruby-on-rails-4,activerecord,Sql,Ruby On Rails,Ruby On Rails 4,Activerecord,我有一个Rails 4ActiveRecord模型,它有两个DateTime字段:dt1和dt2 如果dt1之后dt2小于X(比如18)小时,如何检索此模型的所有实例?请尝试以下操作: Model.where(%q{ dt2 - dt1 < interval '18 hours' }) Model.where('dt2

我有一个Rails 4
ActiveRecord
模型,它有两个
DateTime
字段:
dt1
dt2

如果
dt1
之后
dt2
小于X(比如18)小时,如何检索此模型的所有实例?

请尝试以下操作:

Model.where(%q{ dt2 - dt1 < interval '18 hours' })

Model.where('dt2<?',dt1-x.hours)
?@kiddorails:问题是
dt1
每行可能不同。它不是适用于每一行的固定值。也就是说,对于每一行,我们需要检测它自己的
dt1
值与它自己的
dt2
值之间的时差。理解你的观点:)我用AREL成功地做到了,但似乎Mathias已经在下面建议了一个更好的方法:)只是一个小的修正:将
dtu diff
实际注入到查询中,您必须执行:
Mode.where(“dt2-dt1
对,忘记了字符串插值。对不起;)我再加上。
dt_diff = '22 days' # or 18 hours or 3 years
Model.where(%q{ "dt2 - dt1 < interval '#{dt_diff}'" })