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

How to get records between a timeframe

我有一个名为 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

您可以使用:

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

下面的查询将为您提供给定日期和时间之间的数据。最好你只检查控制台中的记录。

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

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

Event.where(:scheduled_at => DateTime.now..(Time.zone.now + 30.minutes))

Event.where{'scheduled_at ? '> DateTime.now & 'scheduled_at ?' < DateTime.now + 30.mins}