如何在时间范围之间获取记录

时间:2017-01-12 05:52:26

标签: ruby-on-rails postgresql where

我有一个名为Event的简单模型。

我正试图在接下来的30分钟内抓住scheduled_at:datetime的事件。

我已经尝试过了,但它不能像我需要的那样工作 - 我一定是做错了。

Event.where('scheduled_at > ?', Chronic.parse('now'))
     .where('scheduled_at < ?', Chronic.parse('30 minutes from now'))
     .find_each do |event|
  puts event.id
end

3 个答案:

答案 0 :(得分:3)

您可以使用:

 Event.where(scheduled_at: DateTime.now..(DateTime.now + 30.mins))

答案 1 :(得分:0)

以下查询将为您提供给定日期和时间之间的数据。更好的是你只需检查控制台内的记录。

Event.where('date(scheduled_at) > ?', Chronic.parse('now'))
     .where('date(scheduled_at) < ?', Chronic.parse('30 minutes from now'))

答案 2 :(得分:0)

Event.where(scheduled_at:DateTime.now ..(DateTime.now + 30.minutes))

Event.where(:scheduled_at =&gt; DateTime.now ..(Time.zone.now + 30.minutes))

Event.where {'scheduled_at? “&GT; DateTime.now&amp; 'scheduled_at?' &LT; DateTime.now + 30.mins}